Программирование - это не столько про анальное крудошлёпство, сколько про стиль мышления. Высокоуровневая абстракция, поиск сходных черт, оптимизация - всё это высшие интеллектуальные способности, что образуют такой прочный симбиоз с программированием на Java.
>>2614266 Да, иди в шарп. Я не против. Ничего против шарпа не имею. Но я сильно сомневаюсь, что там доступна инфа продакшен-уровня. Насколько мне известно с документацией по взаимодействию с инфраструктурой(брокеры сообщений, апи-гейтвеи, си-сиди, нерялицонные бд, пуши во всякую джиру) там похуже. Но не критично.
>>2614266 Сейчас весь крупняк сьезжает на шарп с азурой (а что будет когда майки туда добавят свой ai...) Так что вкатываться в шарп в 23 году это обязанность любого бэкендера
В чем разница между Spring data jpa и Spring data jdbc ? То есть, если мы в jpа используем репозиторий и сервис, то в jdbc будет тоже репозиторий, а вместо сервисов мы используем jdbctemplate ?
>>2614970 Да, собственно, это весь спринг бут и есть: упаковка в исполняемый жарник, автоконфигурация, стартеры, application.properties. Дальше изучать сам спринг со всякими IoC/MVC/JDBC/JPA.
>>2615050 Я всегда здесь, просто меня удручает то, что происходит в джава-треде с лета, поэтому и не пощу. Построил вот за пару месяцев, дальше не получится, архив сломали. >>2615152 У меня есть работа и нет кота, которому годами каждые пару дней надо делать операцию.
>>2615418 Нашёл древнюю мурзилку со спрингом без бута и с XML-конфигом зато на русском, разобрался, как приложуху со Spring MVC упаковывать в war и деплоить на сервер приложений. Заебался, потом наткнулся на годные видосики с бутом, и теории оттуда в общем-то хватило, чтобы написать пару петов и найти работу где в проекте нет бута, засилье XML и Java EE.
>>2615488 Одновременно с перекатами после 500 в треде возросло количество шизиков, будто в JS-треде сидишь. Ну и постоянная клоунада с шарпом, раньше набеги были редкими. В целом, терпимо, но не нормально. Это мои личные ощущения, кто-то может считать иначе.
Что скажете про контору под названием лига цифровой экономики? Лично я только из-за названия стремаюсь туда идти, мне кажется, там что-то на уровне синергии, только от айти компаний.
>>2615587 Изучать JDBC в виде NamedParameterJdbcTemplate Дальше Spring Data JPA со всякими JPARepository/CrudRepository. Spring Data Jdbc можешь не изучать, он используется редко, но там и учить почти нечего. Хотя удобнее писать DAO-шки для крудов.
>>2615402 На графике можно лицезреть плоды политики великого лидера ОПа с его перекатами после 500 постов с постингом 200 постов/день, и последствия недавней либеральной реформы с перекатом после 1000, когда постинг упал до 20 постов/день.
>>2615648 Это разовый выброс. Раньше перекаты были после 1000, постинг был более активным, и не надо было привлекать шарпистов и других шизиков, чтобы они создавали статистику. В любом случае, по двум месяцам сложно судить, я бы построил до лета, если бы не сломанный архив.
Залез в java.lang.FdLibm.Pow и охуел от красоты этого технологического чуда. Это практически также охуительно, как стримы, но находится немного в другой плоскости.
По вопросу - а какая сложность у этой штуки от модуля? Я циклов не вижу, О(1) что ли? И какие особенности реализации pow в стандартной библиотеке Java?
>>2615779 Мне интересно с точки зрения алгоритмов. Правда ли возможно возвести в степень за о(1)? Если нет, то почему в вышеупомянутом классе нет циклов?
>>2616031 У меня был такой баг, вроде я пофиксил тем, что сменил версию бута. Еще бывало, что ютф 8 почему-то не резолвил, я тогда неделю сидел ебался с этим, уже сто раз везде, где только мог прописал ютф-8, в системных переменных прописал, но хуй там, вместо русских букв была всякая залупа, тоже версию сменил и помогло.
Есть места, где можно кинуть ссылку на пет в гитхабе, чтоб звезд накидали? Я нашел китайца с каким-то говномагазином на буте и шаблонизаторе с 1,3 к звезд, хочу так же.
Хочу сделать библиотеку Mathematics, которая будет обёрткой для класса Math, но с адекватными названиями, а не петухоноподобными сокращениями. Подводные?
>>2616503 Нихуя они не удобные! Приходится запоминать лишние байты информации и загружать голову говном, а во времени написания разницы с классическим мафом нет, ведь 2023 год на дворе, все идеей пользуются и прожимают таб после первого одного символа или первых двух символов.
>>2616572 Это понятно, но приходится работать через всякую промежуточную парашу вроде таймлифа и спринг мвс. На РНР это всё гораздо проще делается. Тут прям боль.
Всем ку, раз мвп тред слился, спрошу в своем любимом жабатреде. Есть одна древняя задача про поиск единственного не повторяющегося числа. Всем уже давно понятно, что она решается очень легко с помощью xorа. Так вот, я слышал про другие, усложненные вариации этой задачи. Там числа повторяются допустим не два, а три раза, или неповторяющееся число не одно, а их два. Нашел в интернете наводку о том, что это можно решить, используя побитовые сдвиги. А я в побитовых операциях вообще не силен, не могу сам допереть, как это сделать. Может тут есть люди, которые разбираются и распишут решение?
только не надо плиз писать про хэшмапы и тд, интересно именно решение с побитовыми операциями
Сейчас учу Java, почти прошел программу по Java Core, в принципе нечего сложного: циклы, коллекции, ООП, норм Но сейчас дошел до Functional Way, и прихуел, три дня уже сижу: абстрактные методы, ламбды, ссылки - делаю таски, но вообще не вкуриваю, а без этого и Stream API буксует Мне как нубу есть смысл сейчас функциональщиной заморачиваваться, я прямо на позиции джуна буду лямбдами писать? Или пока можно отложить это дело, и уделить внимание Spring, Hibernate, SQL? Как выгодней?
>>2609311 → >Вообще, чтиво довольно занятное, в свое время я получил много удовольствия за размышлениями об ООП через призму егоровых объектов. Но на собесе лучше никогда не упоминай что читал ее, я серьезно. Это может плохо кончиться, одно мимолетное упоминание ЕО заставляет знатно просраться даже самых зажатых анальников. Анончики, а что плохого в ЭО? Я не читал, мне интересно, что он там такого написать мог, что вроде бы интересно и круто, но говорить про это не стоит.
>>2616804 Ничего плохого нет, наоборот, это практически абсолютная база, но тупоголовые анальники не могут переварить это, максимум, на который они способны - спрингодатовая круда, поэтому и пукан так прорывает.
>>2616808 Давай обсудим егоркошизу, если так хочешь. Я книгу не читал, но я правильно понимаю что там так же как и в его выступлениях тупо обсирается большинство инструментов, типа спринга и хибера за использование которых кабаны и платят деньги крудошлепам(90% джавистам)? И обсирается только под предлогом, что эти инструменты нарушают маняооп, так как их понимает Егорка? А в альтернативу даются какие-то шизовые матрешки из десятков явных конструкторов? Вот вопрос для егоркошизов или частично сочувствующих. Почему если спринг и хибер не соответсвуют ооп, то я должен слезать с хибера и спринга, а не сказать что ооп это просто пустая болтология без задач?
>>2616787 Да, будешь сразу пользоваться стримами и лямбдами. Лямбды это основа. Без остался очень микроскопический процент легаси, где нет даже жава8. В том же спринге многие апишки отдают стримы или опшионалы, которые ты будешь дальше обрабатывать через лямбды. Или другие апишки принимают лямбды.
Но перейти можно к хиберу со спрингом можно сейчас, а к лямбдам вернуться позже.
>>2616804 В самих по себе ЭО нет ничего плохого. Просто занятная забавная книженция - довольно несистематизированная (из-за чего бесполезная в проде), но интересная "на поразмышлять". Интересный факт - существует ограниченное издание "Elegant Objects Razbor Poletov edition" 2017го года издания, с нейтрально позитивнымим аннотациями от завсегдатаев jug.ru.
Но так уж вышло, что автор (Егор Бугаенко) - не только айтишный евангелист, но и за политику попиздеть любит. Ну и допизделся. Сейчас крайне не модно и порицаемо быть одновременно "медийным" айтишником и не быть при этом прозападным лгбт-сочувствующим либерахой. А Егор слишком олдскулен, чтобы становиться последним.
Щас же ЭО-хейтеры сами не знают, за что ненавидят Бугаенку. Самые честные (и озлобленные) ненавидят его за его политические вирши. Кто-то называет его инфоцыганом (сами при этом бревна в глазах не замечая). Те же дурачки, что пытаются хейтить именно ЭО, а не Егора, как правило даже с лором ЭО не ознакомлемы, и набрасывают вообще не в тему.
Но хейт к автору крайне силен. На заре начала СВО до меня доходили слухи о каком то именитом шарписте-спикере DotNEXT (не помню имени), который в твиттере то-ли призывал, то-ли планировал, то-ли высказывался за то, чтобы литералли выследить и повесить Бугаенку.
Всем привет. Я тот чел который писал про текстовую игру и тип как лучше хранить текст на бэке в бд или по другому. Карочу подумал что пожалуй лучше держать все в одной мапе, но как-то хз как ее сразу при первом запуске приложения забить данными. Тип поджо класс пилить где будет одна мапа или что?
>>2616828 >нарушают маняооп А можно в двух словах, что у него там за ООП-то такое бугаенкосвское? >>2616861 >Кто-то называет его инфоцыганом (сами при этом бревна в глазах не замечая) О каком бревне, и тогда уже и о соринках Бугаенко, идет речь, можно чуть конкретнее в двух словах? Я вообще фронтендо-макака. Просто пробую поднять свою spa в мобилочке, курс по мобильной разработке от Технострима вот отсмотрел по мобильной разработке, хеллоу-волд и туду-лист сделаю на нативных технологиях, если надо. Другими словами, я в джаве мимокрокодил и ничего не знаю. Но любопытно.
>>2616901 Формулировка вопроса >>2616750 исключала вариант не писать фронт, так что не доебывайся. Даже если шарпист, один хуй, зачем ему страдать с гей-акт.js?
>>2616902 Т.е. речь о философствовании типа рассуждений Роберта Мартина о уровнях абстракции функции, что все надо распилить на одностроковые методы, и ещё без аргументов? Оке, понял
>>2616910 Абстрактная фабрика дана из коробки, работает почти незаметно, вместо xml - модули, провайдеры и их иерархия. Но да, фабрики там в каждом классе - https://www.youtube.com/watch?v=5nVKrcnIFqA И ещё там есть классы, а в реакте типа не смогли и обхуесосили, мол наследование - антипаттерн. Немчинский кстати пробовал реакт и ангулар и вью, говорит, что ему ангулар зашел. >>2616912 >узкоспециализированное и нахуй никому не нужное? Ты сказал, что оно ускоспециализированное и не нужное? Не, если ты реально любитель навернуть говна, то конечно, реакт.
>>2617127 Хз как ангуляр сейчас, но когда у меня была оказия поиметь чуток дел с angularjs времен 2012г., от него так сильно несло спрингом, что как будто его специально для профессионально-травмированных джавистов дизайнили, чтобы те в случае чего в этом жестоком мире с голоду не передохли если вдруг джава - все.
>>2616996 Немчинскому джава нравится, так что ну нахуй джаву. Я конечно понимаю, что хоркач есть хоркач, но как же убого выглядят куча набросов типа "это шарпомухам, джависты фронт не пишут" - "раз немчинскому зашло, то говно" - "настоящий фреймворк как настоящее ооп". Чел спросил про то, как фронт писать - я ответил и аргументирвоал тем, что ангулар ближе к джава-фреймворкам. Т.е. чел спрсоил по делу - я ответил. А вокруг куча анончиков ничего, кроме пук-серк и вангую "ты порвался" не напишут. >>2617142 >Композиционно-компонентная идея реакта Если нравится композиция против наследования, то ровно ничего не мешает юзать тот же подход в ангуларе. А вот реакт обложен костылями и деревянный, так что спектор возможностей на нем ограничен. Но реакционеры дохера мастера называть свои баги фичами, так что вот.
>>2616911 Егоркина книжка многими и позиционировалась изначально, как "ЧИСТЫЙ КОД на СТЕРОИДАХ". То есть критики и выебонов еще больше, чем у Боба. А решений почти нет, даже таких кривых и тупых, как у Боба.
>>2617185 А реакт ближе к спрингу тем, что оба - очень попсовые, топ1 в своей нише. А уж какие там под капотом паттерны - это дело десятое. Это важно только промыткам, типа евангелистов языков или настоящего ооп, чистого кода и прочего абстрактного говна.
Шарпомухам выскажу свое мнение. Ничего против шарпа не имею. Как только вакансий в рф на шарпе будет не в 3 раза меньше, чем на джаве, а в полтора раза больше - я сразу свичнусь на шарп.
Спорить не буду, я все равно не настоящий фронтендер. Фронт меня всегда пугал. Для меня он всегда был каким то диким непостижимым местом, где не действуют никакие правила и законы, и где выживают только самые аморальные и беспринципные люди. Уж сколько этих фреймворков у них сменилось за десятилетия, ебануться. И все всегда выглядели для меня так, что к ним применим этот твой эпитет: "обложен костылями и деревянный".
Так что я вообще не удивлюсь если реакт реально был зосран. Я кодил на реакте только по вершкам, глубоко в экосистему не окунался. В целом мне зашло больше. Идея дизайнить систему посредством написания чистых компонент, и впоследствии сшивания этих компонент через функциональную композицию, мне ближе, чем идея сшивания аннотированных сервисов третьей стороной в лице DI контейнера.
Знаю, в джава-загоне подобные мысли звучат дико, но вот к такому выводу я для себя пришел за годы джава-девелопмента.
>>2617205 Двачую. Если di неплохо подходит для крудов тырпрайзного уровня, совершенно не означает, что он хорош в других сферах. Хотя, если говорить про гуй - в ведре тоже правят бал di-фреймворки, не знаю как у айфонов.
>>2617213 Если у тебя есть фильтры какие-то, то дохуя уже превращается в среднее количество. А потом в части из тех мест, куда бы ты хотел идти работать фильтруют уже тебя и не зовут на собес/попускают на нем. И ты получаешь уже несколько оферов.
>>2617194 Ну че это, решений то как раз дофига. Тут тебе и takes, и cactoos, и jcabi, не говоря уже про всякие pdd, 0cratы, rultorы, ... Егорыч не скупился на код, и в отличие от дяди Боба, всегда был очень конкретен.
Другой вопрос - что получилось из этого. Если глянуть под капот того же кактуса, то помимо весьма кривых архитектурных решений, где во имя следования принципам под нож идет перформанс, там найдутся и внутренние противоречия, где Егор нарушает собственные принципы. Поэтому то ЭО не готов к проду, и бездумные фанаты ЭО недалеко ушли от бездумных ЭО-хейтеров - одного поля ягоды.
Смотрите, если у меня есть какие-то данные которые будут изначально храниться в бд, то нормально ли их сразу в schema.sql сохранять в бд? Я же так понимаю схема сразу при работе приложения вызывается.
>>2617219 Есть менее известный файлик data.sql, изначальные данные правильнее сохранять в нём. А вообще эта хуйня для хеллоуворлдов, у которых никто потом схема меняться не будет. В нормальных проектах юзают liquibase/flyway.
>>2617185 >>Немчинскому джава нравится, так что ну нахуй джаву. Так ему же нравится джава 7 и жаваЕЕ на эклипсе. Их то само собой нахуй. Ты выбрал прям эталонного говноеда для примера.
>>2617219 Почитай прошлый/позапрошлый тред. Там вкатун миграциями данные накатывал. И из-за этого проблемы с тестами получил. schema/data.sql это по сути примитивные миграции.
>>2617199 >А реакт ближе к спрингу тем, что оба - очень попсовые Большая тройка называется большой тройкой, потому что они все дохуя попсовые. Материалов по ангулару не меньше, сообщество даже русскоговорящее крупное. Хочешь самым-самым попсовым пользоваться - да на здоровье. Только не надо рассказывать про промытков, потому что это как раз про реакт. В реакте специфические костыли, и реакт-сообщество тратит кучу сил, чтобы убедить себя и других, что это фичи. В общении обычно ничего не могут сказать, кроме каких-то мифов о типа того, что у них пиздато-композиционно-компонентный подход или что ангулар более специализированный. Ничего, кроме реакта не пробовали, понтов выше крыши. Да сам Дэн Абрамов пипец косноязычный и нихрена не знающий челик. Ну повезло занять нишу первыми, сформировать сектанский культ, сделать свой реакт дико специфичным, что от него надо тупо отвыкать и реакт-фанаты просто бомбят, когда узнают, что можно и без стейт-менеджера. Аргументы-то в пользу реакта все-равно сектанские. >А уж какие там под капотом паттерны - это дело десятое. Ты бы посмотрел сперва, что там под капотом, что там в салоне, а потом рассуждал. Нихрена себе, свобода от стейт-менеджера, удобные di, прокаченные модули т.е. то, что непосредственно облегчает жизнь - десятое дело. >>2617205 >Уж сколько этих фреймворков у них сменилось за десятилетия, ебануться. А сколько их сменилось за десятелетие? Года с 15-16 по-моему все стабильно, большая тройка - реакт-ангулар-вью рулят и доменируют. Самый молодой тут вью, выпущен в 14м. >И все всегда выглядели для меня так, что к ним применим этот твой эпитет: "обложен костылями и деревянный". Это вопрос бекграунда, где-то больше аналогий из прошлого опыта, где-то меньше. Я ровно о них и писал. Ну, зашло то, где аналогий меньше - бывает. >>2617212 >Если di неплохо подходит для крудов тырпрайзного уровня, совершенно не означает, что он хорош в других сферах. Так то, что плох, тоже не означает. Очень простой и удобный инструмент. >>2617237 >Ты выбрал прям эталонного говноеда для примера. Его компетенции достаточно, чтобы подтвердить ту очевидную вещь, что ангулар похож на джава-фреймворки. Я не ориентируюсь в джава-медийке, но думаю, что найти джависта, который попробовал и оценил все три фреймворка не просто. Не, если у тебя другие примеры, то давай. А то обсирать много ума не надо.
>>2616861 >Те же дурачки, что пытаются хейтить именно ЭО, а не Егора, как правило даже с лором ЭО не ознакомлемы, и набрасывают вообще не в тему. А кстати это типичное поведение хейтеров.
>как правило даже с лором ЭО не ознакомлемы, и набрасывают вообще не в тему Так зачем наизусть знать всю шизу, чтобы говорить, что она шиза. Для этого хватит просто перечислить аргументы шиза-вбрасывальщика. Вот тезисы из его книги. - https://pavelkvach.com/posts/elegant-objects-notes Почти все тезисы аргументируются в стиле: >Не слушайте Егора Бугаенко. Это усложняет поддержку и тестирование.
>>2617303 >Так зачем наизусть знать всю шизу, чтобы говорить, что она шиза.
Зачем вообще говорить о том, что тебе неинтересно знать/изучать?
>Для этого хватит просто перечислить аргументы шиза-вбрасывальщика.
Зачем повторять за шизами?
Вот этот момент мне всегда был непонятен. Типа - ок, есть определенная идея. Тебе эта идея не просто чужда - тебе претит само ее существование настолько, что впадлу не то что изучить - даже прикасаться к ней. Почему вместо того, чтобы закрыть вкладку в браузере и забыть о ее существовании, лемминги бегут в интернеты доказывать, брыжжа слюной от злости и желчи, как она плоха, тем самым раскручивая ее известность?
>Почти все тезисы аргументируются в стиле:
Прошелся по ссылке, не заметил такой аргументации. Не понимаю о чем ты. Как будто обычный конспект.
>>2617320 >Зачем вообще говорить о том, что тебе неинтересно знать/изучать? Очевидно же, чтобы потешить своё чсв доминированием над тем, кого ты осознаешь жалким, слабым и на фоне кого чувствуешь своё превосходство. У меня был знакомый, типа рокер. Фишка в том, что собственно рок-музыку он знал посредственно, типа пару отечественных групп, но вот на хейт реперов тратил огромное количество времени, перепосчивал в соц.сетях всякие скандалы, мемчики с тупыми реперами, хорошо знал, кто в репе самый тупой еблан, когда и как эти ебланы обосрались. Разумеется, годнота его не интерсовала, он тематически тригерился только на обсеры. Это настолько фундаментальная и пронизывающая все оспекты жизни вещь, что даже странно её не замечать, особенно на дваче. В политике, в научпопе, в техноблогинге - да где угодно. >Типа - ок, есть определенная идея. Тебе эта идея не просто чужда - тебе претит само ее существование настолько, что впадлу не то что изучить - даже прикасаться к ней. Справедливости ради, если идея так эмоционально-ненавистна, то логично её хейтить и всячески бороться. Другое дело, что мы описываем не рациональное поведение. Рационально было бы либо изучать, раз уж ты хочешь это опровергать, либо не ебать мозг и слушать любимый рок, а на реп просто говорить "мне это не интересно". Но на самом деле интересно хуесосить, доминировать и считать, что ты ебать гасконец.
Какой же карявый maven в intellij idea. Приходится вручную добавлять зависимости, которые находятся в pom этих же зависимостей. Этакая цепочка 0_0 А внешний maven intellij idea есть не хочет... Так же с jdk 11 maven работать не хочет, выбрасывает connect denied, только с java 8.
Ну то есть ты сам признаешь, что хоть ты берись обоссывать ЕО, хоть не берись, это ничего не доказывает, не опровергает и не имеет ничего общего с предметом спора?
И что вопрос "зачем знать идею чтобы называть идею шизой" становится риторическим?
Нужен ли Thymeleaf при использовании Spring Security в REST сервисе? Форма авторизации и регистрации на Thymeleaf не особо же нужна в таком случае, а вся регистрация и авторизация будет происходить по определенным эндпоинтам
>>2617330 >Ну то есть ты сам признаешь Я могу на этом не останавливаться и признаться в том, что я в этом треде пока еще не написал ни одного плохого слова про ЕО. Поэтому рассуждать о риторичности вопроса про необходимость знания лучше с тем анончиком, который этот вопрос задавал. А у тебя детектор сломался. Если подумаешь, немного очевидно, что анон, который литерели пишет, что хейт не рационален и сводится к тупой специальной олимпиаде, этот анончик скорее всего не сильно склонен к хейту
>>2617455 Для гошников лучше бы не выебываться на джаву. Если джависты массово попрут на го, то они быстро напишут спринг на го и будут пользоваться им, пока "настоящие" гошники будут ныть что гуланг уже не торт и много магии это сложно.
>>2617436 Это был не наброс конкретно в твою сторону, если че. Более того - я и был все это время челом, считающим хейт нерациональным.
Просто давай заново проследим как шел диалог:
- Я отметил что дурачки-хейтеры не знают предмет хейта - Ты в ответ на это спросил - зачем тратить время на изучение предмета хейта, если можно просто ее хейтить. - Я спросил - зачем вообще хейтить то, на что ты считаешь зашкварным тратить свое время - Ты ответил - для того чтоб чесать свое ЧСВ. - Я из вышеперечисленного делаю вывод что хейт от людей, не сведущих в предмете, не имеет ничего общего с предметом спора. Бессмысленен. После этого как бэ становится само собой разумеющимся, почему таких я называю дурачками.
Мне так то давно похуй - хейтит там кто-то ЕО или не хейтит. Мне не столько ЕО нравится, сколько вот эти вот мартышечьи повадки айтишников бесят. Эта вот позиция - "хейтить то, что я не люблю и не знаю" - она ж пиздецки распространена. Взять хотя бы залетных шарпистов в этом треде.
>>2617512 Давай ты ссылки на сообщения будешь кидать, чтобы было понятно, какой именно текст ты обобщаешь? Вот например, >>2617303 фраза про "зачем знать всю шизу" принадлежит не мне. Если здесь >>2617512 >- Ты в ответ на это спросил - зачем тратить время на изучение предмета хейта, если можно просто ее хейтить. ты имел ввиду именно пост >>2617303 , то слова "Ты ответил" ошибочны. Потому что это не я. >ЕО нравится, сколько вот эти вот мартышечьи повадки айтишников бесят Это повадки не только айтишников. Это общечеловеческая повадка, с которой культура в целом борется, но не современная масс-культура. Современная масс-культура наоборот, направлена на баг-юзинг.
Причем, у них там аж 5 вакансий, которые они каждые две недели перезаливают. C++ Developer, Java Developer, JavaScript/C#/C++ Developer, Unity/С# Developer и С# Developer :/
За сколько времени, будучи вкатуном, начинали готовиться к собесу? Ведь на собесе спрашивают практически всегда только нахуй не нужную на практике информацию, которую даже если ты когда-то знал, то давно уже забыл. Мне вот всегда почему-то мало времени, я перед собесами безвылазно задрачиваю ответы на все вопросы, которые теоретически могут спросить. Но в итоге все равно под конец будто нихуя не знаю…
>>2617650 Собес - это не экзамен. Тебе двойку препод не поставит, если чего-то не знаешь. Это общение двух равных, чтобы выяснить подходите ли вы друг другу.
>>2617596 У меня в мухосрани такая вакуха висит уже полтора года. Я туда ходил в ноябре 2021. Даже устроился, отходил 2 недели и свалил с испытательного в один день. Там короче невозможный легаси-какиш, ебнутый кабан, нешарящий лид, нулевые процессы и инфраструктура, заказчики - региональные госы и зп - соротыга. Кабану походу похуй на проект, взял хуевое легаси с нулевой экспертизой в разработке, тупо бабки пилит. А вкатуны нужны для имитации деятельности. Они когда я приходил должны были новый функционал допилить. Допилили или нет, я хз - но часть старого не работает.
>>2617673 Не могу относиться к собесу не как к экзамену, у меня в ночь перед собесом бессонница, и я не могу с этим ничего поделать. Двойка = отсутствие оффера. Да и какой я равный челу, который сидит легаси 5 лет разгребает, я просто пыль.
>>2617801 Да за двойку ни в одном универе не числанут, плюс есть пересдача, а чаще всего и не одна. Здесь же нет пересдач, а вопрос работы гораздо более значимый, чем вопрос зачетки с неудовлетворительной отметкой или без нее. Я еще слышал, что если собес завалить, тебя в додж кидают в этой конторе на полгода-год. Только хз, это имеется ввиду определенная команда или все команды и проекты компании.
>>2617815 >Я еще слышал, что если собес завалить, тебя в додж кидают в этой конторе на полгода-год. Только хз, это имеется ввиду определенная команда или все команды и проекты компании.
>>2617817 Ну, обычно нет, не правда. Может в конкретной конторе какие-то свои конкретные порядки, хз. Прям на собесе об этом можешь спросить и договориться, что ты типа подтянешь и снова придешь. Почему нет?
>>2617819 >на собесе об этом можешь спросить и договориться, что ты типа подтянешь и снова придешь
Это насколько хуево надо проходить собес, чтоб тебе прям там сказали, что шел бы ты учиться. Мне вот всегда говорили, что отправят фидбэк потом, а ща иди помаринуйся день-два.
Антуаны, которые кодят для себя, где вы берёте идеи, что кодить каждый день?
После работы прихожу домой, сажусь за комп и в голове абсолютная пустота. Ноль идей кроме написания очередного круда.
В итоге сижу ковыряю примеры из мурзилок, на написании которых особо скиллов не прибавится.
Ситуация немного улучшилась после того, как стал повторять школьную программу по физике да я настолько тупой - эту хуйню хотя бы можно вбить в компуктер и оно будет у тебя само считаться и симулироваться, сразу видна польза
>>2617596 >>2617606 Нашла коменты к этой конторке, оказывается что там не платят зп ._. и ещё там есть система ШТРАФОВ. Там людям по несколько месяцев не платят зп, в итоге они уходят, да ещё и им денег сверху за штрафы платят. Лол.
>>2614255 (OP) Тут вот какая ситуевина вырисовывается, даааааа. Нормально, что энтерпрайз разработка на джэве нисколечко не изменилась за 10 лет? Джавамухи все так же настраивают спринг, обмазываются ломбоком и дрочат на паттерны из-за чего код утопает в развесистых иерархиях наследования и прочих перлах вроде класса с постфиксом *Impl. Были ли предприняты хотя бы какие-нибудь попытки усмирить боль и страдания?
>>2617921 >>могу ли я подтянуть какие-то темы и еще раз попробовать. Просто возьмут другого челика да и все. Через полгода, когда ты там подготовишься, вакансии может уже и не быть.
Сменились языки, сменились парадигмы, но тырпрайз так и кодится по заветам дидов, процедурами, как на коболе и сях. Только если раньше процедуры были основной мейнстримной единицей языка, сейчас чтобы кодить процедурно приходится втаскивать в джаву DI контейнер и писать классы-сервисы. Вместо сишных инклюдов теперь - автовайр.
>>2618125 Да, сервис - это модуль, энтити - это структура, метод - это процедура. Можно выкинуть DI-контейнер и писать всю логику в статик методах, никто разницы не почувствует.
>>2618130 На ООП удобно писать десктопные гуи никому не нужные в 2к23, иерархия контролов и окон с пересылкой событий идеально вписывается в наследование и полиморфизм, как и идея, что сущности умные и могут сами выполнять логику. Но сервера рассматривают сущности иначе, это не самостоятельные объекты реального мира, а просто данные, которые надо обрабатывать по запросу с клиента, и это больше соответствует процедурам. Сервера на чём ни пиши - всё равно получится одно и то же.
>>2618136 >active model - антипаттерн, хотя это самый пик и самая суть ооп.
Я б поспорил. Никакая это не суть. Это всего лишь очередной говнопаттерн, созданный анальниками в попытке обуздать непонятную им парадигму.
>Хаскель и лисп - хоть один коммерческий продукт?
Мое любимое - апелляция к рыночку. Все таки анальников хорошо воспитали выдрессировали за прошедшие десятилетия как можно меньше думать головой и как можно больше потреблядствовать.
>>2618003 Че ты не ебешь там, когда я тебе прямо написал - на работе не устает тот, кто нихуя не работает. Хочешь писать код после работы - не работай, просиживай штаны, отдыхай, тебе еще кодить.
>>2618167 >>А если ты по-быстрее сообразишь, и не успеют найти другого челика? Как ты это представляешь? Чел не знал хибернейт, плохо знал транзакции и мнопопоточку, а через неделю ужен все знает? Так он просто вопросы зазубрил, а не темы выучил. Если отказали, значит недостатков было столько, что за месяц-два не подтянешь или уже есть кандидаты получше.
>>2618288 Лол, нет, нихуя, за час невозможно полноценно понять уровень знаний кандидата, собес это рандом. Вполне вероятны случаи, где интервьюеру моча в голову ударит, и он начинает задавать вопросы, которые очень редко встречаются на собесах и в написании крудов на дому вообще никак не помогают, а поэтому предугадать их и следовательно заранее заучить - анрил.
Меня вот попустили недавно на собесе из-за незнания спринг клауд слерма и недостаточного познания в проектировании микросервисной архитектуры высоконагруженных систем. Ну типо кэжуал вкатунские вопросы. Но я бы не сказал, что на погружение в эти вещи на базовом уровне, у меня ушло бы много времени, особенно, если плотно засесть и набросать пару петов. А с транзакциями так вообще, пары часов на изучения асид и изоляций хватит с головой, хз, че там понимать.
>>2618298 Если отказывают после собеса - значит либо много не знает (даже если собеседовал мудак - ну не повезло челику, неудачники нам не нужны) либо есть кто то получше за те же деньги. Никто не будет второй раунд каждому проводить, когда кандидатов и так как грязи.
Такой вопрос, допустим, у нас есть класс, мы хотим написать на него юнит тесты. У него есть метод, в котором вызывается другой метод этого класса. Правильно ли будет мокировать вызов второго метода? Мы ведь тестируем сейчас первый метод и от реализаций других, как по мне, должны абстрагироваться. Иначе может получиться так, что если тест на метод, который используется внутри упадет, то упадет и изначальный тест. Я прав или не прав?
>>2618300 Нет, в юнит-тестах ты тестируешь модули (units), в случае джавы это классы. Никаких "методтестов" нет. И упасть у тебя должны оба теста, это правильное поведение.
>>2618303 А я всегда думал, что юнит тестинг, это тестирование методов отдельного класса. А если во втором методе результат не детерминирован, ну предположим возвращается рандом валуев, который влияет на результат первого метода. Как тогда ассерт на это все написать без моков?
>>2618305 > А я всегда думал, что юнит тестинг, это тестирование методов отдельного класса Нет, это тестирование поведения всего класса в целом. Когда ты в одном тесте вызываешь определённый метод, ты проверяешь не только участок кода в этом методе, но и все методы, которые вызывает это метод. Более того, если методы изменяют состояние объекта, в одном тесте зачастую вызывается несколько методов тестируемого класса, чтобы привести объект в нужное состояние и только потом проверить результаты. К примеру, если тестируешь репозиторий/DAO на in-memory базе, перед проверкой метода поиска обычно вызываешь метод сохранения того, что будешь искать. > если во втором методе результат не детерминирован Недетерминированность плохо совместима с юнит-тестами. Такого обычно быть не должно, есть риск получить тесты, которые будут при одном запуске зелёными, а при другом - красными. Поэтому либо рандом выносится в отдельный класс, инициализируется фиксированным начальным значением и передаётся в конструктор как зависимость, либо в тестируемом классе должен быть особый метод для инициализации рандома.
>>2618068 Ебаный в рот, почему петушарперы так похожи на хохлов? Почему петушарперы, как хохлы засируют рунет, засирают джаватред? Почему у петушарперов каждое второе слово - перефорс? Почему петушарперы, как хохлы, так любят бесплатно защищать барина своей жопой?
>>2618288 До чего на харкачике любят доёбываться и из ничего делать проблему. Анончик жаловался, что страшных интервьюеров, потому что если он перед ними зашкварится, то пол года будет для них опущенным, а вот в универах ему пересдачу разрешали. Такая постановка вопроса предполагает, что он в принципе может подтянуть знания раньше, чем за эти пол года, и все, что ему мешает, это то, что суровые эйчары с интервьюерами ещё пол года не забудут, что он обосрыш на прошлом собесе. Я пишу, что возможно в каких-то конторах и есть такое правило, но самый прямой и верный способ определиться - это сходить на собес и спросить интервьюера о том, какие там порядки и когда он сможет закрыть хвасты и снова придти. Интервьюеры вообще могут быть неадекватными, а могут быть адекватными и им тоже нужно, чтобы челик, который готов работать, пришел в компанию. Интервьюеры тоже люди, а не какие-то палачи-доминаторы. Тут начали накручивать, что вот а ему скажут "мы вам перезвоним" и не скажут прошел он или нет, а по своей инициативе он нимеет наверное, а вот он не сможет доучить, а вот вообще жизнь боль и страдания и мы все умрёёём...
Проходил собес в сбере месяца 3-4 назад, в итоге отказался от предложения в пользу другого. Сейчас опять открыл резюме на хх и за две недели 0 приглашений на собес от сберов, кажется мне, что я на кулдаун встал. Есть у них там такое, что теперь все команды меня будут игнорить какое-то время или мне просто не везет сейчас?
>>2607261 → >По поводу комментов я согласен с ним, по поводу методов - с тобой. Просто охуел, как он там 50 строчек на 7 классов разделил. На 7 классов в книге Клиен код Боб делил Args.java, поэтому скорее всего Анон имел ввиду его. Только в нем не 50 строк, а 100 в изначальном варианте, который принимал только булевые значения. Причем Боб не просто разбил на 7 классов, но и добавил функционала. Не только раздробил, но и дописал. Боб наглядно показал, что в исходном виде, при добавлении ещё одного типа аргуентов, класс обрастает условными конструкциями, логика усложняется, класс быстро становится большим и его сложно сопровождать. Замена условных конструкций полиморфизмом тут дохуя логичное, даже неизбежное решение. Класс обрабатывает разные типы аргументов, пока по-прежнему обрабатывать один тип аргументов, только булевые, Боб извлекает из класса Args базовый абстрактный класс для всех типов ArgumentMarshaler и собственно BooleanArgumentMarshaler. Дальше Боб добавляет функционал и появляются ещё три типа аргументов, ещё три полиморфных класса - что он делает не так? Мы получаем исходный Args, + базовый ArgumentMarshaler + ещё четыре класса, итого 5ть. В добавок Боб выносит обработку ошибок в другой класс, что тоже логично и правильно. Размер исходного класса почти не изменился, но в нем тоже добавлены новые методы с новым функционалом. Новый функционал также появился в новых классах, их извлечение было 100% логичным, получилось хорошо. Так что он сделал не так с этим файлом и за что анонасы дядю Боба хуесосили? Оправдывайтесь, хейтерки. Код удобно смотреть на гитхабе, какой-то азиат законспектировал - https://github.com/glen9527/Clean-Code-zh/blob/master/docs/ch14.md
Подскажите пожалуйста, как сделать так, что-бы номер статьи хранился в базе данных, и как то брать от туда её ? Не понятно как это реализовать в spring ...
>>2618929 Нет, я имел ввиду один метод Кнута на 65 строчек в классе PrintPrimes, разделенный на 14 методов в 3 классах. Кроме 14 методов = проблема в том что состояние(нестатические поля) разнесены по 2 из 3 классов.
Как заебал хибер, нужно лишь сделать non-id филд автоинкрементным, а это говно нихуя не может. Не хочу я блять писать аспекты, делать вторые энтити, изобретать велосипеды, почему эта хуета не может в такой простой функионал блять. Чую скоро жопа сгорить и буду писать sql руками. Всю хуйню блять в комментах перепробовал в разных вариациях а оно блять не хочет
>>2619013 Я не совсем понимаю, что мне это даст? У меня уже есть сущности и они в таблицах. Тут я захотел добавить новое поле, чтобы у всех новых сущностях оно было и было автоинкрементых, то что у старых null всё равно.
>>2618929 давай разберём тобою написанное))) Промотал в конец. Глаза сразу же зацепились. Метод без аргументов и без возвращаемого значения. Что он делает? Хз, видимо меняет стейт объекта. Что будет если забыть его вызвать? Что будет если не вызвать следующий parseArguments() ? Видишь, появляется внутреннее знание, что нужно вначале вызвать parseSchema, потом parseArguments, и никак иначе.
Дальше, проваливаюсь в parseSchema и опять не вижу что оно делает и что меняет. Проваливаюсь дальше. Окей, конечный метод parseSchemaElement добавляет значения в marshalers. По названю метода это понятно? Нет. Что будет если какой-то другой метод поменяет значения в marshalers?
Я бы выходным значением parseSchema сделал этот список marshalers и чтобы они передавались в parseArguments. Теперь ты не можешь вызвать parseArguments, если у тебя нет маршалеров. И никто не может их испортить, т.к. они недоступны за пределами метода.
Эта сука даже циклы запускает с итератором - членом класса. Ещё мне этот момент понравился - setArgument. При этом на выходе boolean, и в теле оно модифицирует элементы коллекции. Ни в жизни бы не догадался что этот метод делает. Пиздос. Модифицирует аргумент, хотя сам пишет что так нельзя
Сап двач, начал изучать джаву по книжке из треда и интернету, пока ещё в самом начале, учу синтаксис, в связи с чем возник вопрос: есть ли какой нибудь сайт с отработкой этого самого синтаксиса по типу w3school, но не настолько банально "вставь 2 слова", а что-то на уровне напиши сам простенькую программу для получения конкретного результата? У самого фантазии хватает на пересчет дней/имён/цветов и т.п.
>>2619092 > Из конструктора нельзя кидать эксепшены Да ну прям, а как ещё оттуда вернуть код ошибки? Или надо передавать в конструктор указатель на переменную для установки ошибок, и после вызова конструктора её отдельно проверять? Не писать же отдельную процедуру init и потом ебаться с if (!init()) { ... }
Есть два метода. Надо сделать так, чтобы один всегда выполнялся вперед другого. Даже если второй начал выполнятся, если в этот же момент начал выполняться первый, то второй должен дождаться его завершения. Какой тут механизм синхронизации надо использовать, что-то никак не соображу?
>>2619179 Я похожую механику через комплитабл фьючи делал. Но я хз, в твоем случае это может быть оверкиллом. Опиши подробней языком кабана, че хочешь добиться? Может тебе тупо аспекта хватит, кто знает?
>>2619228 Аспекта не хватит, методы запускаются в разное время. Но если так совпадает, что они запустились одновременно, один всегда должен выполняться после первого.
>>2619241 А что значит - "одновременно"? Допустим первым был вызван и стартанул метод Б, и пока он исполняется, стартует метод А. Фарш назад не провернешь - получается что второй метод неизбежно выполнится после первого, и твоя семантика работать не будет.
Если литералли "одновременно", без порядка - synchronized на общем для этих двух методах объекте даст тебе гарантию. Впрочем - не даст производительность, но если хочешь производительности, изволь пересмотреть условия своей задачи.
>>2619116 >Макконел в совершенном коде тоже говорит что это плохо Ору в голосину с легасных джавамух, лол. Потрясывают своими книжонками от которых нафталином несет и ворчат - "ууу! Макконел сказал! ууу, читай дядюшку Боба - он все объяснил! не по солиду пишешь! почему не используешь паттерн стратегия?!!! немедленно переписать!". Смешно!
>>2619297 У боба толковые советы, почему бы им не следовать. Можешь юзать другие бест практисы, например от Егорки, или придумать свои, но зачем это делать, если боб уже все придумал за тебя.
>>2619493 И часто ты пишешь сервера для gps датчиков? Просто я погуглил и половина челов пишут что побитовые операции это чуть ли не самая важная хуйня в жаве. Другая же половина пишет что за 20 лет работы они этой хуйнёй всего пару раз занимались.
>>2618984 Метод, в котором Кнут налипил всё в кучу, как только мог, и нашлепал много переменных с именем в одну-две буквы? Чернила, шельмец, вишь, экономил? Я понимаю, что там можно найти переменную длиннее двух букв, но в целом класс реально сильно ужат, и в нем хз что происходит. Можно по дурному сжимать много кода в одну строку, но зачем? Ну да, Боб добавил человеческие имена, разбил на подметоды и отформатировал. И стало не идеально, но лучше. >>2619065 Цель главы - практическим примером проиллюстрировать логическое разбиение класса и извлечение новых классов. Помимо этого, в классе осталось много проблем и компромисных решений, которые "остаются читателю для самостоятельных упражнений". Так что отрефакторил и молодец, хорошо потренировался, оставь другим также. Но про логические и временные привязки в следущих главах говорится много. О правильных именах тоже много. В цитируемом комменте анона говорилось, что Боб сделал слишком много файлов и не правильно разбивать класс на ахрелеон подклассов. Это нормальная критика Чистокода, потому что он действительно предлагает нашлепать дохрена одностроковых методов, которые очевидно с форматированием занимают больше места, чем одна строка, и разбить эту раздутую кучу на подклассы. Тут во-первых, можно смотреть на реальные примеры и оценивать, стало лучше, понятнее, или сложнее. Потому что реально есть код который сам по себе простой и который лучше не трогать архитектурными изысками, чтобы не получить fizzbuzz enterprise edition. Но у тебя критика другого рода, ты гритикуешь Чистый код чистым кодом, предлагаешь тоже, что и Боб в своей книге. Выходит, вся претензия только в том, что Роберт Мартин не достаточно Роберт Мартин? А Егор Бугаенко слишком Боб Мартин т.к. судя по конспекту выше, у него тоже самое, только более категорично?
>>2619509 Не представляю, как выглядит человек, который не знает, как работает xor, битовые сдвиги, знаковые и беззнаковые, не знает, как проверить, является ли число степенью двойки. Это не человек, это какой-то орк. Гоблин.
>>2619508 >Ну да, Боб добавил человеческие имена, разбил на подметоды и отформатировал. И стало не идеально, но лучше. нет, код стал хуже, чем у Кнута. Переменные делать осмысленными это хорошо, но тривиально. А разбивать 60 строчек на 14 методов и разносить состояние по разным местам это кроме увеличенной на полпорядка когнитивной сложности еще и побочные эффекты может принести.
Вот ты прямо уловил стиль Боба. Стена текста, в которой суть - "хорошо пишите, плохо не пишите". Если, как анон выше, что делал скрины - ловишь такого гуру на говнокоде, то "тут есть еще над чем работать, это вам на домашнее задание", прямо как продавцы говнокурсов с юдеми, которых в норм компанию джуном не факт что возьмут. А если на непоследовательности, применяя его же постулаты к его же коду, то нарциссизм в стиле >Роберт Мартин не достаточно Роберт Мартин?
>>2619927 Недавно кстати первый раз поучаствовал в собесе. Лид дал задание прочитать пет проект вкатуна и по нему вопросы позадавать. Думал, что на петы никто не смотрит, меня когда собесили - никто по моим двум проектам ничего не спрашивал.
>>2619927 Недавно кстати первый раз поучаствовал в собесе. Лид дал задание прочитать пет проект вкатуна и по нему вопросы позадавать. Думал, что на петы никто не смотрит, меня когда собесили - никто по моим двум проектам ничего не спрашивал.
>>2619953 Лол, т.е. пет-проекты вкатунов смотрят только другие вкатуны. В принципе, годный способ проверить умение разбираться в чужом коде или проводить кодревью.
>>2619942 Но зачем? Это какая-то форма самобичевания? Ты так себя за что-то наказываешь? Зачем писать на языке, который 10 лет назад считался bloatware, а теперь почти каждые полгода туда тащат криво реализованные языковые конструкции, которые в истерике тащат из других языков, лол. Ну а спринг - это bloatware в квадрате и только психически больной человек будет добровольно на нем писать
>>2619984 Кодревью на меня повесили уже полгода назад. Лид знает, что я его хуево провожу, но ему и другим опытным разрабам некогда и западло проверять простые джуновские таски. Кстати две-три итерации ревью - переделка это норма не то что для полугодовалых джунов, а даже для недомидла с полутора годами опыта в нашей шараге. Самое заебищное делать ревью по задаче, которая тебе не знакома и тз в задаче с точки зрения апи нужно уточнять. И ты идешь сперва к тем, кто дал задачу за уточнением к тз, прописываешь его и потом проверяешь. Или вот написал на себя задачку. Велели расписать ее и отдать джуну на испытательном. Так я ее полчаса расписывал подробно, но написал бы я ее за час. Хочу писать код.
>>2619843 Кароч я не знаю откуда ты анончик, но знай бы я то проставил бы тебе два чая. Сам я не догадался залезть в базу. А там в итоге это поле генерилось без сиквела и функции. Я почему-то думал что если я просто укажу у хибера serial он сам всё сделает.
>>2620038 "К java" есть смысл учить JS и PL/SQL, они могут понадобиться. Вот то, что C++ или шарп пригодятся джависту, крайне маловероятно, на крестах очень специфичные проекты, а шарп хоть и ближе к тырпрайзу, используют обычно что-то одно: либо джаву, либо шарп, но не одновременно.
>>2620118 Я тебе сразу написал, что аннотации хибера это не средство для создания схемы. Для этого есть миграции - ликвибейз и флайвей. Они тебе и версионирование схемы помогут делать. Потому что тебе придется менять схему рано или поздно. Накати миграции(в обоих библиотеках можно на голом sql с тегами того, что это ченджсет). Потом в миграциях через альтер тейбл добавь сиквенс для нужного тебе поля.
>>2620137 Ну у нас скорее инфраструктурное всякое говно для линупсов и етл-скрипты для тестовых баз простенькие. А нахуя нужна скриптопараша на jvm? Груви вот в грудле живет. А еще?
>>2619246 >А что значит - "одновременно" Параллельно в двух потоках >Допустим первым был вызван и стартанул метод Б, и пока он исполняется, стартует метод А. Метод Б должен приостановится и дождаться А. Ну если там уже последняя строчка выполняется, то ладно, понятно что ее не остановить. >>2619634 Нет возможности получить инстанс потока, который выполняет другую задачу.
>>2619736 >Переменные делать осмысленными это хорошо, но тривиально. Но во-первых, речь не только о осмысленных названиях, и во-вторых, осмысленные названия и адекватное форматирование увеличивают размер кода. В условной конструкции можно встретить длинное условие, наполненное однобуквенными переменными. Замена однобуквенных переменных нормальными однозначно сделает строку длиннее, но понятнее. Но неожиданно одних имен не достаточно для хорошей читабильности, необходимо ввести пояснительные переменные, которые неожиданно добавят в код новых строк. В данном примере абсолютно закономерное и оправданное увеличение через тривиальные действия, которое делает код лучше и понятнее. 60 строчек было изначально и от того, что строк 60, он не становился яснее. Одного добавления имен не хватило бы, чтобы сделать код понятнее. Требовалось детальное изучение. Для пояснения намерений, отдельные блоки кода надо было тоже как-то заименовать. Естественно, по итогу стало больше 60ти строк. Если бы код рефакчил Мартин Фаулер, их тоже стало бы значительно больше. Ты из раза в раз повторяешь "60 строк в 14", как будто это прям без вариантов плохо. По поводу состояния, то, что оно должно быть едино, то, что оно не может принадлежать разным уровням абстракции, это твоя личная оценка, которую ты не поясняешь. А в чем проблема, если мы изначально ставим цель разделить единое сложное на простые части, чтобы при работе с одним аспектом программы, мы не должны были отвлекаться на чтение других аспектов? В чем проблема, что состояние разделилось на части по задачам, которое оно выполняет? В этом же и весь смысл и изначальная цель. Естественно, выделение абстракций и извлечение классов мешает видеть всю реализацию сразу и целиком, потому что это противоположная цель. Вот у нас была куча не пойми чего, которая делает не пойми что. Вот у нас теперь класс PrimeGenerator, который внезапно генерирует пример, есть RowColumnPagePrinter, который рсует колонки с этими примерами и PrimePrinter. Нахрена им быть едиными и не разбивать состояние? >Стена текста, в которой суть - "хорошо пишите, плохо не пишите". А за что ты топишь, писать плохо? Стиль Боба это не только сказать "пишите хорошо", но в первую очередь о том, "что такое хорошо, и что такое плохо". Если книга отвечает на "что-вопрос", значит она добилась цели. Обычно критика предполагает, что Боб не правильно указал, что плохо, а что хорошо. Когда же критик в целом согласен по пункту "что хорошо", и даже на этой основе предъявляет самому Бобу претензии, то цели и содержания Чистого кода такой критик никак не отменяет. Если к самим рекомендациям Боба претензий нет, то доебывания, что он сам их не везде соблюдает, мне не интересны т.к. это опровержение нихера не опровергает. Как и оценочные обобщения с продавцами юдеми. Не говоря уже о том, что Боб оговаривается, что здесь не все чисто. >непоследовательности непоследовательность была бы, если бы Боб писал, что он сразу, везде и всегда херачит только клиен код. Он же как, как и многие другие, предлагает сначала захерачить рабочий код, а потом его поэтапно отшлифовать. Если глава прямо говорит, что показывает пример очищение черновика, то показать говнокод вполне последовательно, и если прямо написано, что ощищение не закончено и там дальше есть над чем работать, а цели главы достигнуты, то очевидно, там будет несоответствия "его же постулатам". Такие обвинения выглядят слабо. Я думал, анончики реально могут разъебать Боба,а пишете какую-то мелочную хуйню в стеле "не разъебу, так понадкусываю"
>>2620225 Ты меня переспорил. Я твою стену текста только до середины смог дочитать. А чтобы ты был доволен ответом, то я должен расписывать такие же стены текста.
>>2620269 Одним нужно сортировать по айдишнику - лонги. А другие сущности могут создавать в разных базах и реплицироваться в итоге в одну таблицу. И для уникальности тут кроме юидов ничего не подойдет.
Агалы,как в бд хранить котировки валют. Например есть 10 видов валют,не прописывать же мне все комбинации вручную. Пока придумал только сделать у валюты поле с ценой в какой-то общей валюте и по ней уже высчитывать остальные,но тут сразу ясно что решение говно
>>2620210 >Метод Б должен приостановится и дождаться А Методы никуда не бегут, чтобы приостанавливаться. Приостанавливаются треды, в которых эти методы исполняются.
В теории, ты можешь подождать во втором треду завершения первого треда, используя Thread.join. Но это один хуй не та семантика, что ты описываешь. Плюс, ты сам говоришь что инстансы тредов от тебя сокрыты. Да и даже если б были доступны, в сумме вся полученная конструкция звучит как тормозная неэффективная хуйня.
Короче, ты хочешь какую то ебаную дичь. Пересмотри условия задачи. Либо расскажи подробнее как ты пришел к жизни такой, и зачем тебе такое надо.
>>2618068 >Нормально, что энтерпрайз разработка на джэве нисколечко не изменилась за 10 лет? 10 лет назад в ынтерпайз легаси только начали на жаву с автобоксингом переходить, какой ломбок.
>>2620368 Ничего не изменилось с тех пор. От джэва проектов несет затхлостью, лежалыми пыльными тряпками, пердежом вперемешку с чем-то кислым. Типичная разработка на джаве это бесконечные созвоны и митинги с обсуждением контрактов, паттернов, трехзвенки и охающих мужичков в засаленных свитерах. Код и подходы остались где-то в начале 00-х - развесистые гирлянды аннотаций ломбока, спринга, хубирнейта, аспекты через аспекты плюс дерьмовый синтаксис самой джавы. Вишенка на торте это шизофрения уровня один интерфейс - один класс оканчивающийся на *Impl. Собирают весь этот понос каким-нибудь мавеном, где обмазываются километровыми эксемелинами. Самые отбитые пердолятся с антом. Тестов либо нет, либо там неловкая попытка в TDD, которая рассыпается при малейшем рефакторинге. Либо, в совсем запущенных случаях, тяжеловесные интеграционные или даже эндтуэнд тесты, которые гоняют на отдельном сервере каждую ночь. Про API first, OpenAPI, контрактное тестирование, джева разработчики не слышали и пишут от руки контракты на АПИ, а потом меняются ими с другими командами. Разработка даже, казалось бы, простых вещей, занимает недели или даже месяцы. От всего этого веет какой-то безнадегой и перманентными страданиями.
>>2620385 Проиграл с этого коупинга. Просто чекни как ведется разработка на C#. Пока вы тут аннотации дрочите и аспектами обмазываетесь, пытаясь со слезами на глазах настроить спрэнг и хубирнейт, C# разработчик уже выкатывает MVP, а контора получает очередной раунд инвестиций и фидбек от кастомеров.
>>2620378 Анон так выбора то и нет. Шарп - работает только на винде. Нет спринга и поддержки новых технологий "из коробки", придется писать километровые конфиги и настройки для любой кафки. Каждая новая версия все ломает и обновление становится невозможным - от того сплошное легаси на проектах. Синтаксис многословный с этими гет/сет для каждого поля - прям как в жаве первых версий, когда ломбок и котлин еще не изобрели. Вишенка на торте это шизофрения уровня один интерфейс начинающийся на I* - один класс. Тестов либо нет, либо там неловкая попытка в TDD, которая рассыпается при малейшем рефакторинге. Тестконтейнеры с полноценными интеграционными тестами вовсе невозможны. Про API first, OpenAPI, контрактное тестирование, шарп разработчики не слышали. Вместо обычного реста приходится писать еще и фронт, а значит разработчикам на шарпе придется становится фулстеками и учить хтмл и jquery. Разработка даже, казалось бы, простых вещей, занимает месяцы или даже годы. От всего этого веет какой-то безнадегой и перманентными страданиями.
Кароч решил написать фронт для своего проекта и залез в реакт. Ебать пиздец, я ебал это сё. Тупо писать на жабе бэк это райское наслаждение в сравнении с фронтом. Это только на реукте так или вообще?
Всем приветик. Как JIT компилятор работает? Мне не совсем понятно, как он исполняет код, который компилирует на ходу. По моим предположениям, он берет участок кода, компилирует его в какой-то временный файл с инструкциями для процессора, на котором исполняется прога, затем динамически его линкует к выполняемой программе, но это только мои догадки и как это работает я не знаю. И где почитать можно про это более подробно? В интернете я вообще не могу найти более-менее подробного объяснения, все используют какую-то абстракцию по типу "JIT компилятор компилирует участок кода и исполняет его": КАК ОН ЕГО ИСПОЛНЯЕТ? Как это происходит?
>>2620583 Нет там никаких временных файлов. Есть участок памяти с правами на запись и выполнение, jit туда записывает машинный код и затем тупо вызывает.
Поцаны правильно ли я понял в екдипсе как то не правильно работают аннатации в отличии от идэе? просто вот создал я короче продакстс по гайду, а этот пидор не хочеи передовать автоматически на новый объект и созовать его стребуя что бы я вручную писал блять конструкторы . так у всех или толькоу меня?
>>2620684 Для этого есть множество системных API, юзать их безопасно, если знаешь, что делаешь. Например, на винде через процедуру VirtualProtect() можно разрешить участку памяти выполняться, а дальше начинается магия указателей, смотришь на это и думаешь "А что, так можно было?". Если не хочешь читать исходники JVM, можешь на гитхабе найти примеры JIT-компиляторов для арифметических выражений.
>>2620689 Да, в идее используются специальные проприетарные дополнения для джавы, через эклипс такой код не запустишь. Поэтому на промышленный сервер тоже надо устанавливать идею.
>>2620689 Аннотации не могут работать по разному в зависимости от иде. Аннотации вообще не работают, они - тупо данные на языковых конструкциях, обслуживаемые тулами типа ломбока. Тулам же в свою очередь похуй на твою иде.
Разные иде могут иметь разный уровень поддержки аннотационной магии. Если я правильно понял этот вот неинтерпретируемый бред:
> вот создал я короче продакстс по гайду, а этот пидор не хочеи передовать автоматически на новый объект и созовать его стребуя что бы я вручную писал блять конструкторы
...это звучит как недостаточная поддержка ломбока эклипсом, либо отсутствующий плагин для ломбока. Ты вообще устанавливал на эклипс ломбок-плагин какой нить?
>>2620357 Смотря для чего. У нас в банковской системе для платёжных документов юзаются два справочника, упрощённо:
Справочник валют: - ID - цифровой и буквенный ISO-коды валюты (810 - RUR, 840 - USD, 978 - EUR) - название (Рубль, доллар США, Евро) - различные названия разменных единиц (копейки, центы), названия валют в разных количествах и склонениях для отображения сумм прописью
Справочник курсов валют: - ID - ID валюты - дата и время начала действия курсы - курс относительно рубля с точностью до 4 знаков после запятой. Курс самого рубля считается 1.0000
Хранятся все курсы за всё время, т.к. могут понадобиться для сверки.
Как правильнее DTO отдавать: в сервисе сущность в DTO переводить и отдавать/принимать в/из контроллер DTO или из сервиса только сущность возвращать/принимать, а затем все действия делать по переводу в DTO в контроллере?
>>2620857 Написать отдельный компонент-конвертер и положить его рядом с контроллером. Сервисы ничего не должны знать о DTO, потому что должны быть независимы от транспорта/представления. А контроллер может знать и о сущностях, и о DTO, т.к. это связующее звено между бизнес-логикой и транспортом.
>>2620738 А если я храню в бд название статьи, как мне потом в контроллере с ней работать ? В @GetMappin'e брать оттуда значение и делать return страницы(туториала)? Или давать на отображение название и показывать клиенту список ?
>>2620910 Спорная логика. А почему сервисы не должны знать ничего о дто, а о сущностях и проекциях базы должны знать? Или тоже не должны знать? В моем понимании это именно слой контроллера ничего не должен знать о сущностях. И вызывать конвертер нужно именно в сервисе.
>>2621100 База данных одна, а потребителей сервиса много: веб-клиенты, мобилки, десктопы, другие системы с интеграцией через REST/SOAP/gRPC/очереди с XML и JSON, и у каждого потребителя по своему набору специфичных и несовместимых DTO. Сервис с бизнес-логикой быстро превратится в помойку на тысячи строк, если там заниматься ещё и конвертацией. В хеллоуворлдах, конечно, можно возвращать DTO хоть из репозитория.
>>2621112 Ну во первых кто сказал, что база одна? Во вторых кроме базы как источник данных для рест-эндпоинта могут быть рест или соап клиенты, которые по сути, как источник данных ничем от второй/третей базы не отличаются. Ну и преимущество сервисов в том, что слоев сервисов можно наплодить десяток на одно апи, если логика сложная и многоступенчатая ты от этого никуда не денешься. А контроллер и репошка обычно по одному на одно апи. Так что выделяем просто отдельный сервис для конвертации во все возможные форматы и вызываем его из нужного котроллера или другой системы интеграций. Плюс контроллер и так засран обычно кучей аннотаций по маршрутизации, валидации, сваггеру. Ну и код в теле метода по логированию, заполнению хедеров. Зачем тащить конвертер в контроллер?
При передаче айдишников - выдает пользователей, пустого листа - возвращает ничего. А если я хочу вернуть всех пользователей правильно ли передавать null? Или надо сделать такой же метод рядом? например getUsersFiltered(Filter filter)
В идеале это должен быть 1 метод, и мне могут понадобиться все 3 варианта - список по ИД, список всех, пустой список. Возможно ли так сделать придерживаясь null safe api?
>>2621248 Во-первых параметр не меняется это типизированный лист. Во-вторых похуй как там это где то еще работают, как мне на джаве вышеописанную хуйню реализовать? Пустой лист + null выглядят как костыль. Неужто нет другого пути?
>>2618300 Есть контора в моей мухосрани в которой я никогда не работать, туда берут всех. Стоит ли туда сходить чисто ради интервью ? Так как это будет мой первый собес, что бы потом в нормальные компании приходить с подготовкой.
>>2621178 >При передаче айдишников - выдает пользователей, пустого листа - возвращает ничего. >А если я хочу вернуть всех пользователей правильно ли передавать null? я всегда так делаю, по моему вполне логично и понятно. но вместо List<> id лучше использовать объект FilterParameters или что-то типа того, в котором уже задавать параметры фильтрации. Причем если этот FilterParameters унаследовать от абстрактного класса или интерфейса то во всем коде открываются огромные возможности для рефакторинга и упрощения кода. Например вместо того чтобы писать кучу одинаковых по сути методов в духе getUsers(), ты пишешь один раз в абстрактном дао-классе getEntities(FilterParameters) в котором реализуешь все стандартные фильтры типа фильтра по уид, дате создания и т.д. а в каждом дао реализуешь фильтрацию только по тем полям которые уникальны для этого класса.
>>2621347 >ты пишешь один раз в абстрактном дао-классе Проигрываю с джавамух. Никак не уймутся. Только дай волю - тут же шаблоны проектирования вхерачат, чтобы было оопэшненько, лол
Аноны, подскажите, пожалуйста, где можно обучиться написанию микровсервисных приложений на кафка + спринг? Курсы какие-нибудь, статьи топовые. Или просто подскажите в каком направлении гуглить.
>>2620523 Нахрен ты во всякие реакты лезешь, если тебе нужна хоть какая-нибудь морда для проекта? CSS-фреймворк какой-нибудь скачай, типа бутстрапа и не напрягай голову лишней хуйней. Ты же фронтенд-макака чтобы в реакт лезть.
>>2621611 >>типа бутстрапа и не напрягай голову лишней хуйней. Так бутстрап и есть лишняя хуйня. Для него придется либо серверсайд делать дополнительно, либо все рвано поднимать вью и костылить поверх него. Лучше вообще без морды тогда уж. Свагера хватит.
>>2621775 Инфоцыгане сначала дали вкатунам команду "Вкатывайтесь в Python". Они и начали вкатываться, заняли все вакансии. Инфоцыгане заметили, что курсы по питону стали плохо покупаться и дали новую команду "Вкатывайтесь в Java".
Я еще понял, что потоков может быть много. То есть один главный поток, который должен выполнится вперед и другие, которые могут выполнятся одновременно, но должны дождаться главного.
>>2621874 Все тебе сказали про тред-джойн, просто ты либо не слушаешь, либо напридумывал себе нереализуемой хуйни какой то, про стопанье методов как выше было. При этом деталей задачи не раскрываешь, а вытягивать клещами из тебя инфу по крупинкам - ну бампай сиди, хуле, надежда умирает последней.
>>2621886 Я уже все расписал максимально подробно. Один метод запускается при получении сообщения от мессадж брокера, второй запускается по расписанию. Все через спринг аннотации, так что доступа к инстансам тредов у меня нет.
>>2621890 Нихуя это не максимально подробно. Че за ответ ты ожидаешь услышать на эти крупицы? Да, к инстансам тредов у тебя доступа нет, и даже если б были, это тебе бы не помогло, потому что треды-обработчики событий не терминейтятся при окончании обработки, а тупо паркуются в ожидании следующих событий. Джойн на таком треде не завершился бы никогда.
Все, на данном этапе ты всрался, задача не имеет решения. Похуй - хоть бампай хоть нет - пройди в темпе пять стадий принятия и двигайся дальше. Я тебе еще прошлый раз это говорил - пересмотри условие задачи, либо расскажи языком кабана (бизнеса), что конкретно ты синхронизуешь и почему тебе важен именно такой порядок. Ты меня проигнорировал, начал нести какой то детский лепет про БД и монгу. Где бизнес блять?! Что это за скедулы, что это за сообщения из мессаг брокера?
>>2621918 И поделом. Вопросы задавать не умеешь, NDA обходить завуалированными формулировками не умеешь, конкарренси судя по всему знаешь плохо - че смысла тогда с тобой возиться?
>>2621935 Не люблю проперти на ямле. Как то они хуже читаются и при написании можно с табуляцией объебаться. Вот с докер-композами и гитлаб-си почему то с ямлом не было особых проблем.
>>2614255 (OP) Откуда пошла рекомендация делать мок зависимости, код которой ты не контролируешь? В чем ценность таких тестов? Это словно пальцем в небо, где ты гадаешь как бы ответила система, хотя на самом деле не знаешь. Я еще понимаю мок какой-нибудь библиотеки или простенькой хуитки, которая дает API и у нее мокают клиент. Но несколько раз видел, когда мокали клиент для огромной ебы, где дернув ручку создается целая гирлянда всевозможных объектов и состояние системы меняется, что простыми моками это либо не описать, либо займет весь день на один тест.
>>2622156 Так для мока еб должен быть или инмемори еба мок библиотека или прото такая же еба в тестконтейнере. Ну это уже интеграционный тест. а если мы пишем юнит для обработчика ебы в нашем сервисе, то можно замокать апишку ебы. Ну и в тестовых пропертях прописать урлы подлючения к ебе как локалхост.
>>2622160 >для мока еб должен быть или инмемори еба мок библиотека или прото такая же еба в тестконтейнере Пиздец ты имбецил, старичок. Почитай на досуге, что такое мок. Инмемори еба, лол, тестонтейнер у него, лол. Все джавамухи таких дебилы?
Так я и не понял прекола. Где-то люди через orElseThrow кидают исключения в сервисах, а где-то люди доводят до контролера и уже там кидают. Почему так? Разве не лучше кидать в контроллере и уже хэндлером ловить?
>>2622048 Я вообще не представляю себе, как кому-то могут нравиться ямлы. Хули они такие популярные? Это же буквально постоянное отстреливание себе ног из-за съехавших отступов.
>>2622368 >Я вообще не представляю себе, как кому-то могут нравиться ямлы Это единственный человекочитаемый формат описания файлов конфигураций, который можно читать и при этом не рыдать от страданий. А твои проблемы с отступами отлавливает любой более менее развитый редактор кода или IDE. Я уж не говорю про всякие линтеры и валидаторы.
>>2622330 Какие нюансы? Для спринга там особо никаких специфичных нюансов нету. Берешь и читаешь доку спринг-кафки, она небольшая. По кафке пик 1 неплохая тоненька книга, где кое-какие паттерны используются. По микросервисам и спрингу - пик 2 недавно начал читать, но это просто краткий обзор но спринг-клауд библиотеками. Там есть кусочек и с со спринг-клаудовской оберткой вокруг спринг-кафки в конце. Но я еще не дошел.
>>2622419 Это мусорные книги. Ты все равно не научишься правильно строить микросервисную архитектуру пока не поработаешь в крупных и известных компаниях
Почему мы можем использовать лямбда выражение при создании экземпляра класса Thread ? Ведь Thread это КЛАС, а лямбды применяются только к Функциональным ИНТЕРФЕЙСАМ ??
>>2622468 >А мессенджинг между сервисами бывает и в достаточно небольших проектах. Единицы имеют кафку в проекте. Везде где я работал девопсы и админы не знали как развернуть и обслуживать кафку, а разработчики отказывались ее изучать и писали велосипеды поверх базы данных + джобу по крону, которая тащила данные и пукала по ресту.
>>2622454 То есть, для пет-проекта, не обязательно чтобы твои микросервисы были связаны и написаны архитектурно верно, за это спрашивать не будут на собесе, правильно?
>>2622474 Петушарпер, ты меня еще в мвп треде заебал. Дохуя где есть кафка. Из 2к вакух на спринге на хх - в 900 есть кафка. Послушав тебя я понял, что проблема на в шарпе, а в тебе.
Подскажите пожалуйста, в вакансии написано: "Angular,Java". Но я не знаю Angular, стоит ли туда отправлять резюме ? Может возьмут, а я на месте буду учить уже.
>>2622489 >стоит ли туда отправлять резюме ? Зачем? Если в вакансии есть требования ангуляра, а ты его не знаешь, то только время впустую потратишь. В следующий раз внимательнее вычитывай требования вакансии
>>2622475 То что ты называешь архитектурой это часть систем-дизайн интервью. И вот оно уже бывает в более-менее крупных конторах и обычно на позиции от мидла. Там советы обычно это читать кабанчика, System Design Interview и что-то подобное.
В треде одна и та же шарпомуха срет. Настолько одинаковую хуйню из раза в раз повторяет, что легко детектится. А потом ноет, что работу найти не может с 2 годами опыта. Ну конечно, вместо того чтобы дрочить вопросы к интервью, петы и книжки он тут высирается.
>>2622520 потом будет сидеть на собесе и его весь час будут только по ангуляру спрашивать, а он будет отвечать что-то в стиле: "эээээ ну да я что-то такое слышал, не помню точно, ответить не смогу"
в итоге на минус морали забьет на программирование и вернется в такси
>>2622400 >А твои проблемы с отступами отлавливает любой более менее развитый редактор кода или IDE. Я уж не говорю про всякие линтеры и валидаторы. С чего он должен отлавливать слетевшие отступы? Структура остается валидной, вот только информацию в себе несет неверную. Самый человекочитаемый формат - json, а в случае небольшого количества конфигов - .properties
>>2622537 Берешь и отвечаешь, что не знаешь ангуляр. Можно перед собесом напомнить, что не знаешь, но готов выучить. И все вопросы по ангуляру скипаешь.
>>2622956 Странный вопрос, ещё недавно под Android можно было писать только на джаве. А котлин по сути работает поверх джавы. Вот писать под Android на котлине без джавы получится не всегда.
>>2622961 Возврату null придумали однозначную альтернативу - Optional. А вот что передавать вместо null, никто не говорит, только то что это якобы плохо.
>>2623003 >А вот что передавать вместо null, никто не говорит
Тот же опшенал, почему нет?
Или заранее проектировать контракт метода таким образом, чтобы в него не было нужды передавать нул. Например, завести метод getAllUsers() для получения всех юзеров. Или завести контракт для описания фильтров, как тут уже предлагали.
>>2623011 А если таки будет, то будет NPE. Придется его поинвестигировать, найти рут коз и пофиксить. Тут уж ничего не поделаешь, скажем спасибо дидам, которые догадались референсные типы в джаве сделать nullable. Самое тупое блять решение, даже в плюсах такого дерьма не было.
Но справедливости ради, если в своем коде никогда нули не передавать и не возвращать, и следовать этому правилу везде без исключений в своем коде, мест, откуда тебе может прийти нуль, остается не так уж и много (как правило это - стыки с API зависимостей), и контролировать их относительно несложно.
>>2622454 Обосрался с копиума анальника, как будто копросервисы строить надо, а не шлёпнуть две кнопки в спрингинитиалайзере и потом 6 лет допиливать производительность, чтоб запрос по 30 сек не обрабатывался.
Есть один вопрос, который даже не к конкретно яве относиться, а вообще к программированию. Но задам здесь, ибо кроме явы и кой чего ещё я больше ничего не трогал.
Так вот вопрос следующий - а насколько привычной практикой является программирование прямо в терминале? Или все же только в иде?
Аноны, выручите, пожалуйста... Нужно придумать пет-проект на спринге с кафкой, но мне при слове пет-проект ничего в голову не приходит кроме блога-статейника с админкой и комментами под статьями. Дайте описание, того, что нужно написать, чтобы были задействовано как можно больше знаний, чтобы на собесе оценили. Помогите прям, пожалуйста, сам ничего придумать не могу, фантазии нет.
>>2623290 Ну в твоих вебстудиях на петушарпе так и есть. На джаве ты несколько месяцев только доступы получаешь. А потом можешь полгода ничего не делать и никто не заметит.
>>2623383 Вопрос : >List<User> getUsers (List<UUID> ids) >При передаче айдишников - выдает пользователей, пустого листа - возвращает ничего. >А если я хочу вернуть всех пользователей правильно ли передавать null? Ответ : Два метода : >List<User> getUsers (List<UUID> ids) >List<User> getUsers ()
>>2623361 Спасибо. Идея неплохая, нужно будет учить про балансер и липучую сессию, что есть плюс, с ними я совершенно не знаком. Жаль только не придется работать с бд и ауфетикацией/афторизацией.
Кстати, умение в лоадбалансер и все вот это вот связанное, кубернетес там, его часто на вакансиях требуют?
>>2623369 Тоже спасибо. И это неплохая идея. Жопаскрипт вспоминать вообще не хочется, это да... Но придется.
А так вообще, как идея: сайт-статейник, с админкой и регистрацией, комментами, чатом сбоку и функцией игры в морской бой? Комменты со статьями и юзерами хранятся в бд, передаются туда через кафку, морской бой и собщения чата чисто на в кафке. Норм пет-проект?
>>2623355 >На джаве ты несколько месяцев только доступы получаешь. А потом можешь полгода ничего не делать и никто не заметит. Никто не станет держать такого кадра полгода и больше. Все доступы ты получишь в первый день. Ничего делать ты не сможешь, т.к. с тебя спросят на дейлике. Будешь завтраками кормить - ну так у задачи есть срок. Проебал срок - получаешь пачку вопросов. Проебал еще раз - летишь на мороз.
>>2623413 В чем там проблема то может быть с кафкой, чтобы сразу не разобраться? Кинуть создать новый топик и кинуть в него эвент? Подписаться на топик и обработать эвент?
>>2623423 >>где доступы в первый день >>откуда надо валить на испыталке. Да, таким как ты там не место. Ищи дальше места, где ты полгода будешь сидеть на бенче и получать зепку. Особенно сейчас когда галеры уплыли и с запасом программистов уже никто не нанимает.
>>2623418 Ммм... Так. Сервис который продьюсит в кафку то, что пришло со странички администратора (круды по статьям, комментам, действия над юзерами), далее, сервер который консьюмит все это, на нем бизнесс логика. Далее, два "юзерских" сервиса, тоже самое что и выше, только с комментами юзеров. Ну и сервис морского боя и сервис чата, на каждом по консьюмеру и проду, в бд они ничего не кладут.
Я конечно не шарю совершенно в написании микросервисов, и то что выше звучит как херня и нагромождение ради нагромождения. Но если задача показать, что умеешь пользоваться апи всего этого, то вроде норм как мне кажется.
>>2623431 >что делать с дублированием сообщений ничего, шлешь идемпотентные сообщения. В еблю с exactly once не лезешь >Что делать в случае отката транзакции посылаешь сообщение в конце @Transactional метода. Роллбек маловероятен, только если сервис упадет после отправки сообщения, но до коммита транзакции. С распределенными транзакциями не связываешься. >Что делать если не получилось отправить сообщение настраиваешь ретрай в продюсере
>>2623454 >Хочешь изучать кафку - поднимай кафку и отрабатывай всяко-разные кейсы с кафкой. двачую кстати, если писать пет-проект вокруг кафки, то логики с кафкой будет мало, а всего остального дохуя. Легче написать 2-3 проектах где в 2-5 сервисах будет использована кафка в разных сценариях.
>>2623039 > либо 2 почти одинаковых метода getByIds(list ids) + getFiltered(filter)
Еще ты при желании можешь избежать дублирование логики этих методов, сформировав в getByIds filter-обьект из айдишников и делегировав вызов в getFiltered.
Недавно я заболел неприязнью к геттерам/сеттерам, не могу себя контролировать, везде удаляю префикс get в геттерах, уже дохуя обратной совместимости сломал, но меня даже никто принудительно ограничить не может (лид проекта). Что делать, как лечится?
Трушная неприязнь геттеров (aka "Синдром ООП им. Бугаенко")- это когда ты считаешь внутренние аттрибуты обьекта неприкосновенными снаружи ни при каких условиях, и выгрузку их наружу через методы - лютым табу.
А у тебя просто ментальный загон какой то. Юзай альт-инсерт в ИДЕЕ для генерации геттеров, юзай ломбок. Или забей. По настоящему JavaBean спецификация нужна всяким фреймворкам типав ОРМов, но таже джексон сейчас спокойно конфигурится для классов с почти любым публичным контрактом.
>>2623781 >Трушная неприязнь геттеров (aka "Синдром ООП им. Бугаенко")- это когда ты считаешь внутренние аттрибуты обьекта неприкосновенными снаружи ни при каких условиях, и выгрузку их наружу через методы - лютым табу. В общем-то я так и считаю, у нас геттеры есть только там, где нужно напрямую данные передать куда-то, где фактически не объект, а интернал пакет.
>>2623820 >Бд и файлы и созданы, чтобы состояние хранить
Ок. Предположим у тебя есть приложение и у этого приложения есть некоторое состояние, которое хранить не в оперативке - дорого. Куда его сложишь, если мутабельность - антипаттерн?
>>2623833 > А какая разница? Что ответ на этот вопрос меняет? Если ответ "это сущности моего говнокода", то нужно чекнуть башку, если противоположный — то нужно задать вопрос "нахуя мне засирать ещё и свой код мутабельностью, если для этого есть специальные места"? Чтобы что? Чтобы сложнее было дебажить? Ответь, мне реально интересно что такого тебе даёт мутабельность.
Вот делаешь ты, к примеру, простенький, но очень важный рест. И в рамках работы с этим рестом есть нужда создавать, хранить и мэнеджить пользовательские сессии. Предположим что ты не можешь себе позволить эти сессии сгрузить куда то на диск - ну вот настолько для тебя пиздецки важен throughput, что просадка от этого маневра сразу станет ощутима.
В сервлетах есть HttpSession, куда аттрибутами можно складывать сессионную инфу. Но налицо мутабельность. Какую немутабельную альтернативу придумаешь в своих убийцах сервлетов ты?
>>2623861 >Ответь, мне реально интересно что такого тебе даёт мутабельность.
А че ты на меня бросаешься, как будто я защищаю какую то позицию. Я так то тем же самым занимаюсь, чем и ты, только с другой стороны - препарирую ризонинг свидетелей иммутабельности.
Если отвечать по существу - спору вообще нет: разумеется это не сущности моего приложения. Но что это меняет? Как только ты скаплился на что-то мутабельное, ты один хуй получаешь тот же самый спектр проблем от сайд-эффектов, вне зависимости от того, твоя эта мутабельность или не твоя. Поэтому я тебя и спросил. В чем разница то?
>>2623878 > А че ты на меня бросаешься Скрин броска? >как будто я защищаю какую то позицию. Я так то тем же самым занимаюсь Давай по существу. Неинтересны метаоправдания кто там чем занимается >Но что это меняет? Речь о твоём приложении идёт? О твоём. Бд - сущность твоего приложения? Нет. Следовательно, наличие бд не может оправдывать занос мутабельности в своё приложение. >ты один хуй получаешь тот же самый спектр проблем от сайд-эффектов Вот и решай этот спектр изолированно, нахуя ты его ещё глубже тащишь? Он типа решится от того, что ты обернёшь его в мутабельный объект, протащишь по всей кодобазе и 100500 раз изменишь?
>>2623884 Не стоит. Если поставят задачу писать велосипед и не дадут воспользоваться одним из имеющихся распределенных/локальных кешей - уволюсь. Нужно отделять прикладной уровень от инфраструктурного.
Че тебе скринить? Ты с какого то рожна решил что я - аквокат мутабельности, и начинаешь меня зачем то переубеждать: это вот твое "...cледовательно, наличие бд не может оправдывать..." вообще не в тему, ибо я вообще нигде ничего не оправдывал. Я отлично понимаю претензии людей к мутабельным обьектам, мне не надо обьяснять прописные истины. Мне просто интересен ход мысли челиков, с категоричным ебалом говорящих об антипаттернах.
>Вот и решай этот спектр изолированно, нахуя ты его ещё глубже тащишь? Он типа решится от того, что ты обернёшь его в мутабельный объект, протащишь по всей кодобазе и 100500 раз изменишь?
Ок. Тогда тебе - тот же вопрос, что я адресовал анону вот здесь: >>2623869
>>2623799 Жаба ничем не лучше шарпа или Go, если Оракл позволяет себе решать за разрабов, что антипаттерн, а что нет. Вот приняли они очередное неудачное решение, надеясь заставить разрабов писать код так, как хочется Ораклу, а смысл, если в итоге этим говном никто не пользуется. Туда же проверяемые исключения, модули jigsaw и прочая хуйня без задач.
>>2614255 (OP) А почему проекты на джэве такое дерьмо? Ну, т.е. у разработчиков в принципе отбито чувство прекрасного. Могут годами писать говнокод без тестов и как-то ухитряются ссать в уши менеджерам, что "вот-вот! еще чуть-чуть и прямо в продакшен! осталось найти куда писать код!". Блядь, в любом другом месте эту всю шайку-лейку уже бы выгнали на мороз нахуй, лол.
>>2624018 Ну в мвп треде он говорит про два места работы. Типа донные галеры с фулстеком. А потом на простейших вопросах по сикулю обсирается. Думаешь даже донные галеры выдумал?
>>2624031 Не думаю что поработав в одной из этих галер хотя бы полгода можно было бы не узнать что такое интеграционные тесты. От ерата кстати был неплохой вводный видос по спринг бут тестам. https://www.youtube.com/watch?v=YOK3IDBBTlg
>>2623926 >>Жаба ничем не лучше шарпа или Go >>Оракл позволяет себе решать за разрабов >>этим говном никто не пользуется Если ты про кваркус - то спринг натив на подходе, который будет таким же быстрым как го/кваркус но с фичами спринга.
Груви есть смысл изучать? А по фану? Если до этого не использовал ни один язык под JVM? Котлин вроде круче, но к нему душа не лежит. А на грувях есть градл, груви бины в спринге.
>>2623454 >>2623463 Можно мне, тогда, пожалуйста, накидать идей для этих нескольких пет-проектов, чтобы я в них продемонстрировал все знания, которые требуются.
>>2624238 Рофл блять, кваркус даже близко не был упомянут, а спрингоевангелист сразу подорвался свою спрингопарашу продавать в нерелевантном для этого треде.
>>2624411 Да, с ораклом проебался. Кваркус это от рэдхатов.
Тогда тем более не понял твой высер про оракл в контексте сравнения с го. Всем в джава мире давно уже похуй на поделки самого оракла. Но и перепиливать ждк и ломать совместимость никто уже не станет, уже насмотрелись как шарп с этим обосрался и стал синонимом слова легаси.
>>2624431 Ну че тебе теперь, иронию разжевывать чтоли?
Изначальный наброс был:
>Жаба ничем не лучше шарпа или Go, если Оракл позволяет себе решать за разрабов, что антипаттерн, а что нет
И наброс был вдвойне тупой, потому что (помимо того, что Ораклу на самом деле похуй) Go - язык, в философию которого изначально закладывалась ортогональность, единый стиль и минимум синтаксического сахара. То есть язык, который литералли создавался гуглом для того, чтобы решить за разрабов, как им следует писать код.
>>2624396 Ну например система уведомлений. 3 продусера - 1 консумер. Есть 3 разных сервиса с крудами. И при всех изменениях в состоянии бд 3 сервисов эвенты летят в сервис уведомлений. Ну и покрути, поверти. В один ли топик слать или в несколько. В одну партицию или в несколько. Что ключами будет являться. Слать весь объект по кафке, дто с частью инфыа или просто статус+ид и забирать инфу по ресту. Потом можно сервис консумер поднять в 3 инстансах. И будет 3 консумера в 1 консумер группе. Потрогать посмотреть какие будут проблемы, какие преимущества. А потом вообще сделать несколько сервисов-консумеров из разных групп.
>>2624918 Тачка своя есть? Скоро и таксистом не заработаешь. Ремонт и покупка авто сильно подорожали и еще подорожают. Так что цена поездки увеличится. А покупательская способность населения падает. Самые большие пользователи такси сбежали из страны.
>>2624602 А как релизовать вообще подобные уведомления? Что делать на консумере? Я бы хотел такое запилить, но хз как пользователю это на экран вывести, тк никогда подобного не делал
>>2625144 А почему именно мне никак? Чем я хуже? И что такое эластик вообще? Ну точнее я то загугли что это, но не понял, какие у него вообще могут быть реальные кейсы применения
>>2625160 >А почему именно мне никак? Чем я хуже? Потому что современный фронт это отдельная профессия, причем не такая простая. Как минимум разобраться в нем займет немало времени, которое ты мог бы потратить глубже разобраться в профессии бекендера-джависта.
>>2625169 А что без глубокого погружения в фронт уведомления сделать не выйдет? Я вот реактивный спринг для этой хуйни тож учить не особ хочу, но думаю написать один класс, который будет там этот флукс отдавать или делать что-то вроде этого, будет не так уж и трудно. По крайней мере надеюсь мне пары видиксов хватит. Надеюсь с фронтом так же…
>>2625183 Ну я когда повторял видосы и статьи с вью и ангуляром - у меня жопа сгорела от непонимания. Ну и там обратная совместимость везде по пизде. Библиотеки в статьях latest, и они не работают нихуя, а какие имелись ввиду на момент написания статьи - я хз. Плюс разбираться с нпм, ярном, бабелем подзаебался, там нельзя прости кинуть конфиг. Нужно в консольке вызывать команды по добавлению зависимостей(если можно, это не претензия, просто я ебал в этом разбираться). Особенно от вебпака горело. Ну и я забил нахуй и на голом жс без ноды написал простой spa без роутинга. И даже на него я потратил недели три. И к концу петпроекты после 500 строчек кода, было больновато менеджить компоненты написанные на голом жс без понимания архетиктуры. Вебсокеты без понятия можно ли написать без фреймворков. В итоге потуги во фронт ни на йоту не пригодились на работе.
>>2625195 С вью дока лучше всех статей, с ангуларом не лучше, но тур героев в помощь. Печально конечно, что авторы статей мудаки, но с одной стороны, можно найти других, а с другой, не так уж всё и сложно. Зато ты получил бесценный и такой редкий сейчас опыт ебли на голом жс. А без спа, на обновлениях странички нельзя было сделать? Ты хоть бы джиквери подтянул бы.
>>2625206 В жабу дохерища вкатунов, ощущение, будто каждый 3 в мвп треде пишет на жабе, да и этот тред не спроста один из самых активных, вкатышей хватает. Я бы сказал, что вакансий достаточно пока, чтоб более-менее удовлетворить спрос, но это только пока.
Вообще я имел ввиду именно возможности языка, а не контингент, который на нем пишет.
>>2625201 Не увидел смысла. Все работало на fetch для вызова рест эндпоинтов и append и remove элементов из дом дерева. А на чтение доки того что может никогда не пригодиться я не хотел тратить время. Я писал до этого пет на шаблонизаторах с обновлением странички, но мне нужно было отработать работу с RestController и Jackson. Думал для следующего пета, уже третьего - читать доку реакта, по буквально после первой страницы get started меня позвали на собес, куда я в итоге устроился. В итоге за полтора года фронт не пригодился не разу. По сути даже инвестиции времени в изучение голого джаваскрипта никак не окупились. Лучше бы задачки по sql решал.
>>2625210 В мвп может быть. А вот на хедхантере не так много резюме. Вот фронтовичков и питонистов прямо до жопы. Шарпистов почти столько же как и джавистов, при в трое меньшем количестве вакух.
>>2625216 А че в какой-нибудь сбер не пошел или другой банк? Не предлагали или самому интереснее было в эту контору? Я вот тоже щас просто думаю, куда идти, в банк какой-нибудь с 8 или дай бог 11 жабой, или мб начинать искать чет поменьше, но зато без такого количества легаси, которого в банках как мне кажется просто до пизды.
>>2625221 А в чем идея? Топить за технологии написанные не тобой и большие корпорации, потому что они возможно на пару процентов удобнее чем другие? Это какое то быдлячество, почти как у футбольных фанатов.
>>2625227 Мне не кажется, что это правда, но если это так оно и есть, то это как-то грустно. Хотя я слышал в шарп вообще идут только гомосексуалисты, тк работы там нормальной нет, в основном платят долбежкой в задницу.
Привет аноны,все еще бьюсь с аудитом,нагуглил Spring Data Envers,вроде бы то что мне нужно,однако проблема в том что эта приблуда создает по таблице аудита для каждой сущности,мне же нужно просто подсчитать количество транзакций,которое проходит через мое приложение. Кто-нибудь знает как заставить Envers не создавать по отдельной таблице,а свалить все в одну таблицу?
>>2625229 Ну я выбрал джаву, потому что это бекенд. И потому что на нем пишут преимущественно большие системы. И чтобы много работы. Из технологической стороны мне хотелось статическую типизацию. Шарп с технической точки зрения не зашел лишним сахаром на понимание которого надо тратить время. Го с технической стороны даже и не знаю минусы. Но там экосистема молодая и меньше готовых решений. У меня нет желания писать велосипеды для прикладного кода. Идейные это скалисты наверно какие-то.
Как подгрузить ебаную свагер документацию из ямл файла блядь? Безмозглые выродки-пендосы,нахуя мне тысяча видео обзора свагер эдитора. Сделайте хоть одно видео как разбить документацию на подфайлы и загрузить в этот сраный эдитор. Ебаные мрази,как же горит
Приветик, можете что-нибудь подсказать в плане хороших материалов.? книг и прочего и прочего Нужно будет сделать в качестве зачетной работы за семестр игровой движок. Например подобной darkwalllke.itch.io/simple-rpg что-нибудь по этой теме.
Здесь сидят если не промытые спронго-тырпрайзники, ничего кроме говносервисов в своей никчемной жизни не писавшие, то шарписты, для которых ты со своей инициативой - пища. Конструктива ни от тех ни от других ты не дождешься.
По теме - в джаве есть довольно много движков, на которых можно было бы слабать чето подобное пикрилу. Проблема в том, что они - разной степени готовности, и когда садишься на них чето делать, очень быстро упираешься в какие то ограничения. Начиная от отсутствия фич, и заканчивая отсутствием документации.
Если бы передо мной стояла задача слабать ченить подобное пикрилу на джаве, я бы попробовал https://litiengine.com/.
>>2625406 Ну описание эндпоинтов там нет, раньше в сваггере хотябы названия методов писались, теперь если у тебя 3 гет метода то наслаждайся /entity в трех методах. Примеры значений на уровне "name" : "string". Да и еще много всего,намного удобнее заполнить один раз файл и пользоваться с комфортом
>>2625870 >удобнее заполнить один раз файл А когда у тебя будет меняться апишка нужно менять в 2 местах. Или надо контроллер из свагер файла генерить. Тут был один чел, который писал в проде на api first. Мне кажется имеет смысл только если апишку может описать кто-то другой: фронт или аналитик. Если ты ее сам всегда описываешь легче свагер генерить из кода, а для подробностей вешать анноташки.
>>2625266 >вжж-вж-вжжжжж-вжж-жжжж-вжж-вжжжжжж Джавамуха обезумела. Сможешь ли ты совладать с ней? Успокойся! Никому твой свагер не всрался. Просто пиши руками свои гаденькие контроллеры и подключи какой-нибудь говноплагин, который тебе будет генерить свагер доку на твое помойное api. Потом где-нибудь в чатике кинешь апишку фронтам или кто там у вас этим говном занимается и все тип-топ.
Как же меня это заебало блять. Сижу на гигантском лего-сити сервисе, в котором хуй пойми что где происходит. Навёрнут какой-то ебанистически огромный фремворк для типа конечных автоматов, который на деле нахуй не нужен, но он есть. Дженериками и наследованием обмазано абсолютно всё блять. Все геттеры, сеттеры написаны руками, при чем в 99.999% случаев не отличаются от того, что ты ожидаешь (но есть и сучьи исключения, которые хуярят тебе null pointer exception в рантайме). Тесты лежат в директории src, из-за чего ебучая идея думает, что это основной код и нихуя не работает, как надо. Локально нихуя не запускается, сиай крутится полтора часа. Логи пишутся в 10 блядских файлов, которые хуй пойми чем раскидываются во всякие стораджи, о которых вообще нигде не написано. Документация в принципе не обновлялась лет 6. Как же всё заебало, блять.
>>2626206 Напиши свой адаптер без метода add, ты за паттерны не шаришь или че? И сделай, чтобы дип копи элемента листа на каждый гет делало, тогда заживём
Сап, програмач Джавист, 3 года опыта (банк) Сейчас предлагают на работе новый проект: программировать под Java Card Кто имел опыт? Или это болото и лучше туда не лезть?
Расскажите о первых неделях-месяцах работы на галере после вката. Чем занимались вообще, какие тасочки пилили, сложно было ли вообще поначалу? Скоро вот выхожу на свою первую работку в качестве жабиста, так что было бы интересно почитать
>>2626382 Сильно тупил из-за непонимания предметной области, заёбывал тимлида вопросами, исправлял опечатки в текстах ошибок, писал юнит-тесты, копировал из джиры готовый код, написанный тимлидом, и коммитил. Такой кринж.
>>2626382 Дают задачки типа написать юниты, обновить версии библиотек, опечатки править. Потом добавить поле в дто. Потом написать очень простой эндпоинт. Ну и если есть менторинг - задачи тебе распишут подробно, потом объяснят устно куда писать код, а потом напишут десятки комментов к твоему пулреквесту, где отметят говнокод, опечатки, несоответствие кодстайлу и гитфлоу.
>>2626382 Дали комп с интернетом, цель, ментора и неделю времени. Задача была - написать скрипт на незнакомую мне ось и на незнакомом мне языке, с использованием сетевых технологий, о которых я тогда не знал. Нихуя короче на тот момент я не знал, но "делай как хошь - сделаешь, значит годен на что то". Митап с ментором о проделанной работе раз в день, остальное время делай что хошь.
Лучшая стажировка из возможных, я считаю. Никакого пресмыкательства перед старшими, никакого чувства кринжа, чистый опыт, прогресс в удобном темпе, отношение в коллективе на равных, уровень ответственности только пониже.
>>2626431 Ну это такая проверка на умение гуглить и дебажить. Для стажера наверно реально неплохой метод. Для джуна скорее нет. Ему в первую неделю надо дать задачу связанную с вашим стеком, чтобы потом он доучил то, чего вообще не знает перед реальными тасками, которые надо давать уже через месяц. Потому что потом только остается всего лишь два месяца, чтобы его выпиздить в на испытательном, если не вывозит.
в чем может быть проблема? я выполняю команду через cmd, она отрабатывает, возвращает код 0 после proc.waitFor(), блок finally отрабатывает, но сама программа продолжает работать. помогает только вызов System.exit(0). где и что я мог не закрыть?
Как в идее перебилдить проект? Например когда добавляешь в грэдл.билд новую зависимость, нажимаешь build->rebuild project, нихуя не происходит. Я закрываю идею и заново открываю, тогда все работает.
Пиздец ребята,выбрал себе тему диплома "Система учета данных сотрудников предприятия". Сделал микросервис с базой,будет еще второй по генерации документов в пдф. Вообще не знаю че в текстовой части писать,я же понимаю что это говно ебаное,тупо сетевой аналог 1С на джаве. Вот че делать,как преподнести абсолютно помойную работу? Как защищать?
>>2626539 Там может быть прикол с инпут стримами от процессов. А если ты запускаешь через cmd еще, то там дочерний процесс может не убиться иногда. И типа хоть cmd и закрыт, а то что он открыл будет висеть. Проверь в диспетчере задач, че там открыто. process.children().forEach(ProcessHandle::destroy); можешь такое прогнать еще, если дочерние процессы живут.
Приведите пример плиз, когда в поде разворачивают несколько контейнеров. Я понимаю, что обычно это хуевая практика, но иногда все-таки такое делают, так что было бы интересно узнать про кейсы. А еще слышал тему про мультиконтейнеры докера, про них тоже интересно, зачем может понадобится в одном контейнере несколько приложух делать
>>2626951 Ну хорошо, у кого тогда мне следует спросить? Тут вроде нет кубернетис треда, а в мвп треде одни тролли-долбоебы, которые скорее срыгос оформить пожелают, чем помогут.
Вообще жаба тред при том, что Я пишу на жабе, поэтому и задаю вопрос в родном жабаче. Тут хотя бы все люди взрослые 40+ лет, шансов быть посланным нахуй кратно меньше.
>>2626967 А разве девопсам не похуй, че они там разворачивают? Всегда думал, что они просто следят, чтобы все работало как надо, но изначальную настройку выполняют согласно архитектуре, которую придумывают разрабы
>>2626972 Разрабы обычно на хую вертели архитектуру, похуй, как оно будет в проде, лишь бы локально запускалось. И отдают архитектурные вопросы на откуп тем же девопсам.
>>2627174 Лума один хуй не будет. Он бы мог поменять многое. Как минимум в реактивщине. А паттерны в свищах это сахарок,функционал которого через паттерн стратегия один хуй чище.
>>2627184 Буквально пару дней назад был вот такой код у меня. Как прикажешь break collection; реализовать через стратегию? И таких случаев охуительные количества, когда на самом деле понимаешь, какие возможности паттерн матчинг даёт.
>>2627164 С той лишь разницей, что в сбере архитекторы - высоко летающие птицы с раздутым ЧСВ, код не пишут, рисуют в Visio схемки и получают от 400к. Каждый пук, связанный с интеграцией, надо согласовывать с ними, и если архитектор говорит "нет", тимлиды хуй что смогут сделать, приходится подчиняться. А девопсы - такие же рядовые сотрудники, как и разрабы, разве что при возможности принимать решения архитектуру вероятнее всего придумывать будут именно девопсы.
>>2624237 я слышал кризис там из за войны какой-то... Ну а так сейчас все на морозе, много сокращений. Откатится откатится - куда оно денется? Откатится даже если нейросетки захватят мир - в какой то момент просто станет такой жоский недобор кадров, что будут готовы брать и учить. Мир без специалистов не останется, а каждый спец был джуном
А еще смешней было с джаваскриптом на джаве: сначала долгое время был движок rhino, потом в восьмерке завезли ультрапупербыстрый и охуенно интероперабельный насхорн, пиарили его несколько jpointов подряд, а потом такие: йоу, ну тут оракл запилил граальвм, поэтому в следующем LTSе (11) насхорн депрекейтится.
Почему большинство компаний сидят на 8 жабе? Жаба же так славится своей обратной совместимостью. Неужели, даже переход на 11 жабу, это такая прям трудоемкая задача, под которую жалко выделять время и ресурсы в большинстве случаев?
Как вообще вы относитесь к обратной совместимости в жабе? Все-таки это киллер фича или нахуй не нужна и лучше бы язык развивался быстрее без оглядки на предыдущие версии?
>>2628153 В жабе на хую вертели обратную совместимость. Ну то есть обновиться в принципе можно, но не тогда, когда любимый сервер приложений запускается только на 8 жабе, а на 11 при старте стектрейсит и умирает. Никак не отношусь, что имеем то имеем.
>>2628183 Я другой анон, но согласен с мнением. Жаба, как платформа, а не как язык. Ну и как язык введение модулей в джава 9 сломало обратную совместимость. Да и большинство на 8ке это что-то из позапрошлого года. Сейчас дай бог 40%. Вот статистика почти годовалой давности. И в рф с обновлениями даже чуть получше.
>>2628303 Фактически, при луме без явного указания того, что тред ос, вместо создания обычного треда будет использоваться сорт оф тред пул. Низкоуровневый, с оптимизациями стека и вообще красивый. Это гораздо выгоднее создания обычных тредов и даже создания обычных тред пулов - в приложении нет смысла гонять обычных тредов сильно больше, чем ядер/потоков исполнения, которые предоставляет ос.
>>2628307 Но оума не будет в 21 вне превью. Следующий лтс ещё через два года. Ещё через выйдет томкат и спрингбут под лум. И ещё через год можно тащить в прод. Короче через 5 лет.
>>2628171 Так сам же сказал - сервер. А джава тут причём? В том то и дело, что при апгрейде отваливается всякое душное говно типа спринга. Ломбок стабильно апгрейдить ещё надо. Понапишут говна, а виновата джава.
>>2628358 >Но оума не будет в 21 вне превью Все так, поэтому эта лтс нахуй не нужна. Следующей лтс, которой будут действительно пользоваться, будет лтс с лумом.
>>2628303 >На высокой нагрузке ведь обычные треды ос лучше.
На высокой нагрузке как раз именно ОС-треды начинают сосать бибу. Ибо они хуево масштабируются: нельзя, имея нагрузку в миллион запросов в секунду, создать для их обслуживания миллион тредов - весь проц тупо на скедулинг уйдет. В такие моменты приходится врубать NIO и исхищряться в стиле "джаваскрипт", аля, "как бы нам, имея один железный тред, получить параллелизм для миллионов запросов в секунду?". Ну а это литералли определение "зеленых потоков".
>>2628577 С точки зрения кода, абстракция - переиспользуемый компонент, описывающий цель или намерение, но не конкретный алгоритм достижения этой цели. Антоним абстракции - конкретика (или имплементация).
Если тяжелые вычисления - то да, от зеленых потоков может быть оверхед в зависимости от их имплементации. Но тырпрайз же редко про тяжелые вычисления. Обычно тырпрайз - это история про то, как клиент делает реквест, который триггерит кучу ввода-вывода в СУБД и соседние микросевисы, и под высокой нагрузкой в тырпрайзе имеют ввиду в первую очередь большое количество запросов к сервису.
>>2628148 Если тян то мужики прям сильно гноят на собесах будто всю свою девственность за 30+ лет отыгрывают ,хз откуда вы все взяли что если тян то просто устроиться
>>2628762 Ага,мое резюме тоже отклоняют постоянно,ощущение что большинство вакансий просто для вида,причем их ещё копируют по 100 раз и в итоге постоянно на одно и тоже откликаюсь, а новых вакансий и нет будто
>>2628775 даже не знаю как ответить. Я уже серьезно настроился, просто хочу знать свои шансы. А то читаю вакансии, а там везде либо студентота, либо с образованием техническим на позицию стажера.
>>2628773 Вкатиться вполне реально. Просто сложнее раз в 10, чем до сво. Наш тимлид берет достаточно дубовых джунов. Уж как они доходят до собеса - хз.
>>2628773 Чел, вкат всё. Уже даже инфоцыгане признают это. Теперь только через университетское образование и стажировки. Эра случайных людей в профессии закончилась. Почему ты не спрашиваешь, можно ли вкатиться на работу хирурга? "Я вот 4 месяца атлас по анатомии почитал, гистологию тож чуть-чуть. В школе лягуху резал, свинину разделывать умею" А зарплатка у хирурга огого. И очень уважаемый человек. Если хочешь относительно быстрый способ вката и джобсекурити - выбирай курсы сварщика. Никаких постоянно новых фреймворков, тебя не заменит чатгпт, у тебя всегда будет работа(танки варить) или какие-то шабашки(ворота заварить петровичу).
>>2628782 Удачи попасть на собес, когда там на вакансию джаваджуна прилетает 1.5к откликов
Бля, вот нахуя вкатуны просят сказать им талмуды по спрингу, когда на ютубе есть куча не душных курсов, есть статьи на балдуенге, и есть евгений борисов. Это какой-то особый вид извращения?
>>2628892 так ладно, но прочитать годную книгу я хочу в любом случае напомни годную книгу по самой жабе, jvm, гк, чтоб я мог после неё охуенно блеснуть знаниями словно помидор по всяким внутренностям
>>2628835 И нахуя мне ты и твоё мнение? Мне в целом похуй на твоё пожелание удачи - трудоустроен и давно как синьор. Но даже если б я был вкатун, что бы мне дало вот это вот твоё полотнище?
Ты сам то настоящий сварщик, или просто советы раздаешь?
>>2629426 Ну и вкатуны пошли. Локальные переменные и параметры конструктора хранятся на стэке. Объект, который конструктор возвращает, хранится на хипе.
>>2629610 так же тогда вопрос, почему не смог сделать импорт локал тайм в jsp файле? в еклипс просто напрочь не хочет его туда вставлять и импортировать.
>>2629619 >Хз, много лет не сталкивался с такими древними технологиями, как JSP, а вместо эклипса у меня idea. я просто прохожу обучение с тореннта там и про jsp. впринципе я могу это не делать,но всё таки ручками нужно попробовать а он сука локал тайм не прописывает как у препода с видосика , тоесть не могу сука сделать самое простое и не могу понять почему ведь по факту похоже делаю всё тоже самое
>>2629622 Может, версии отличаются. Попробуй поставить те же, что у препода, чтобы эклипс, версия джавы, версии зависимостей и сервера приложений были те же самые.
>>2629731 Надо знать для собесов. > что изменится если ораклы поменяют реализацию? То же, что и всегда, выяснится, что для очередной очень важной либы это критично, и все будут по 5-10 лет сидеть на предыдущей LTS-версии.
>>2629619 >древними технологиями, как JSP, поясни, даже работая с аннотациями и рестфуд апи приложениям в этом курсе а он не старый 2019 года вроде, работа с серверлетами происходит настройка через jsp . я не понял что сейчас типо новое молодёжное?
>>2629823 JSP в этом курсе просто потому, что на нём легче объяснить MVC. Не затирать же новичку-джависту про жаваскрипт, ноду, реакты и редуксы. Совсем без UI невразумительно, типа "смотрите, у вас есть контроллер, живущий по такому-то урлу, дёрните его через curl из командной строки, получите жсон, всё, идём дальше".
Аноны сеньоры помидоры, взываю к вашей мудрости. Перепощиваю из ньюфаг треда, т.к затупил, что сразу к вам не пошел
Краткие вводные такие: 4 курс универа на it специальности, через полгода получаю диплом. Параллельно работаю ждуном-кодомакакой на джанге, по факту классический крудоеб сборщик джсонов. Из навыков с работы и уника имеется 2 года опыта работы на джанге + sql, postgres, git, docker, какое-то понимание алгоритмов и структур, БД, ООП + еще в унике был курс по джаве, так что пусть и весьма поверхностно, но я с ней знаком и сдал на ней с десяток разных лаб.
Теперь к сути: мне очень хочется в ближайшем будущем получить blue card и релоцироваться в Европку, но на данный момент, очевидно, мне не хватает ни знаний, ни опыта конкурировать с тысячами других голодных миддлов. В связи с этим я решил перейти на джаву (больше вакансий) и плотненько за ~год ее задрочить до состояния, когда смогу выбить себе оффер в Европу. Прошу опытного анона помочь и порекомендовать мне 1) Список того, что обязательно должен знать хороший java-middle. Помимо базы типа спринга, мавена и хибернейта хотелось бы что-то услышать про хайлоад, микросервисы, кафку и тп. Для меня сейчас это темный лес и я не понимаю ни насколько это важно при устройстве на работу, ни где вообще можно было бы получить соответствующий опыт при самостоятельном изучении 2) Годную литературу по джаве и спрингу, чтобы после прочтения можно было смело заявить, что я их хорошо знаю. 3) Советы и опыт в целом по перекату в европку в качестве рабочей лошадки, подводные камни и все такое
>>2630080 Project Loom Добавляют легковесные виртуальные треды, внешне похожи на обычные системные треды (которые долго создаются и жрут по мегабайту памяти), но их можно создавать тысячами и запускать в них блокирующие операции.
Всем привет. Решаю задачу и столкнулся с проблемой. В 44й строке у меня якобы итератор выходит за пределы размера ArrayList'а. Помогите разобраться, почему так происходит, ошибки не вижу.
>>2630127 Поменяй условия вокруг && местами. Вычисление происходит слева направо, и твоя проверка, что ты не вышел за размер коллекции, сейчас выполняется уже после обращения.
>>2630003 >2) Годную литературу по джаве и спрингу, чтобы после прочтения можно было смело заявить, что я их хорошо знаю. по спрингу нет нормальной литературы, одно говно, причем хуже чем курсы даже Я смотрел курс какого-то негра, он там сперва Spring Core разбирает, а потом Spring boot.
вот ссылка. Он смешной клоун конечно, но в отличии от книг, которые обычно советуют читать (Spring in action например) у него все систематически разложено, нет больших пробелов и после просмотра (прочтения) не складывается ощущение что тебя где-то наебали с магией спринга. Да, воды нмого но можно ставить быструю скорость и перелистывать ролики где оно в сотый раз делает одно и тоже.
Дальше в любом случае читать документацию на сайте, потому-что одного лишь негра не хватит. Смотрел негра 2 года назад но так и никуда и не устроился, тупо забил, сейчас решил по новой попробовать вкатиться
но мне показалось там черезчур заумно все написано и не совсем понятно когда ее читать. Для вката не зайдет (тупо ниче не поймеш), а после чтения доки уже и не нужно.
Единственное что, у негра нет микросервисов и никакого хайлоада, тут я не помощник когда первый раз вкатывался в джаву не дошел до этого уровня, но думаю тут придется все же освоить какие-нибудь специализированные книги
>>2630261 У Козьминой нет ничего особо заумного. Там проблема, что там описаны легаси способы работы со спрингом даже на момент написания. А сейчас больше 5 лет прошло с написания. Может в 6 версии исправили и убрали легисятину, но я не уверен.