Что такое Java? Java - язык программирования с классами (aka объектно ориентированный), где нужно явно указывать тип объявляемых переменных (aka со строгой типизацией). Заебись. А что ещё делает Java лучшим языком программирования? - На Java написано столько всего, что любая твоя невообразимая идея уже существует в виде библиотеки, которую можно скочать и юзать - Java - мультипарадигменный язык, тут можно писать в любом стиле, который тебе вздумается, даже к памяти можно получить доступ через Unsafe, но, при этом спроектирован язык для того, чтобы на нём писали в ОО-стиле. - От прошлого пункта плавно перешли к отличной проработке языка - язык с самого начала задумывался как язык для ООП и многопоточности, благодаря чему писать чистокод на Java легче лёгкого! - Java - относительно молодой язык, который до сих пор активно развивается жидами из Oracle, при этом почти неполживо опенсорсно. - Java следует принципу write once во всём. Java никогда не ломает обратную совместимость - твой код, написанный на Java 1.2 будет работать на Java 18 - и не зависит от платформы, являя из себя единственный полностью кроссплатформенный язык с кроссплатформенной экосистемой (если не считать языков-паразитов на JVM).
чё учить чё надо знать а можно спринг не учить а можно алгоритмы не учить а как понять что ты выучил спринг а как понять что ты понял что выучил спринг а как какать
Пробовал читать Козмину по Спринг 5. Это пример как не надо писать книги. Тонны воды и голой теории. Книга пытается рассказать обо всём, а в итоге ни о чём. К примеру, самая интересная часть по вебу занимает всего пару страничек и даже толком не рассматривает REST, шаблонизаторы, передачу модели. Там буквально один пример про веб-приложение. Сможет ли затем читатель самостоятельно написать на Спринге веб-приложение? Нет.
>>2426003 (OP) >На Java написано столько всего, что любая твоя невообразимая идея уже существует в виде библиотеки, которую можно скочать и юзать Мне интересно кто из вас пытался выбраться за зеленую полянку со спрингопараши и реально написать что-нибудь на джаве? Большая часть библиотек на джаву за пределами веб дрисни не обновляются авторами уже, дай бог на 8 заведется >>2426006 Неоспаримый факт, но это не заслуга сишарпа, а заслуга дебилов из оракла и редхата
Почему оракл не даёт на кукан жид брейнсу и не выкупает его? Так можно было бы и петухлин закрыть, и наконец то взять в свои руки единственную IDE для джавы. У них чистый доход за год в десяток раз больше цены всех жидбрейнсов.
>>2426088 Жиды это по факту гугловские шныри. Да и оракл ваш помирает потихоньку. Их база с каждым годом теряет популярность, в облачной гонке они проиграли. Зато все поглощают и поглощают. Думаю в перспективе 5-7 лет оракла самого выкупят.
>>2426040 Зато есть про di, aop, jdbc и jpa на русском. Много конфигов без бута, а потом немного бута. Да, уж если ты такой книгоеб и любитель переводов, после Козьминой нужно читать Гутьеррес - SPRING BOOT 2.
>>2426047 Чел, нахуй нужно что-то кроме веба на высокоуровневых языках? Десктоп мертв, а все остальное "кроме веба" пусть на c/c++ пишут. Что ты собрался кроме веба то писать, шизик?
>>2426109 Что конкретно из не веба ты имеешь ввиду? Особенно упоминая шарп. Десктоп мертв. На го, кроме веба пишут всякие инфраструктурные штуки уровня кубера. Так на джаве такого еще больше. Но это 1% всех вакансий и хуй ты туда попадешь. Раст это по сфере применения те же плюсы, только смузихлебские.
>>2426047 Жаба за пределами спринга уже давным-давно никому не нужна, причем такая ситуация последние лет 10 наблюдается. Помимо спрингового веба есть еще майнкрафт и какие-то десктоп-поделия на свинге, которые скорее мертвы чем живы.
>>2426098 Тру, оракл загибается, и это факт. По выручке и капитализации они как были на уровне начала 10-х годов, так до сих пор и остались, а с нынешним кризисом вообще вниз покатились. Что делает оракл? Нихуя полезного на самом деле. Их БД используют только в каких-то монструозных организациях вроде банков сша и европы. Они ее и дальше будут использовать, и через 10 лет, и через 20, просто потому что миграция почти невозможна. А в современном мире все давно используют постгрес как реляционную БД.
Облака? Тут оракл жидко просрался, их сервисы ни в какое сравнение не идут с амазоновскими, гугловскими или даже майкрософтовскими.
Какие-то инновации, новые ЯП, ресерч? И тут оракл в глубокой жопе. Тот же MS имеет ресерч центры, где постоянно выкатывают новые идеи, в оракле нет нихуя. Ну и как место работы оракл очень хуевая контора, буквально ни один вменяемый анальник не пойдет к ним работать, когда есть возможность в том же помойном амазоне устроиться.
>>2426102 Ларри уже старый дед с деменцией, какие контракты? Старые да, а вот новые контракты никто в здравом уме заключать не станет. Оракл просто будет выкуплен в течение следующих 10 лет с очень высокой вероятностью.
>>2426113 А зачем нужна джава, когда есть шарп и го? Жаба со своей спринг экосистемой была неплоха для своего времени, ее пик популярности пришелся на 2015 год примерно, дальше ничего толком в мире жабы не менялось, а конкуренты предложили идеи, благодаря которым можно писать код без тонны лишних сущностей, бойлерплейта и лишней магии под капотом.
>>2426117 На жабе почти никто не пишет инфраструктурные штуки. Когда-то в яндексе писали что-то, но и там на говноланг все переходят постепенно. Инфра - это питон, го и c/c++ для лоулевела. Джава и ее обвес по типу spring boot, data, jpa - для задач, где нужно много всякой примитивной бизнес-хуйни с кучей сущностей. По типу банков, crm erp систем, систем учета складов, магазинов, товаров, и т. д.
>>2426149 Кваркус, микронавт есть. А толк от них какой? Со спринга я уверен никто уже не слезет. Проще уволить всех конфигураторов аннотаций, которые называют себя джава девелоперами и начать писать на чем-то более современном и легковесном.
>>2426113 >GraalVM Это кстати мертвая хуйня имхо. За последние годы от них толком не слышно ничего, да и вообще, нигде ни разу не видел на проде грааль
>>2426101 Я уже читал Гутьерреса. Как и во всех подобных книгах где-то в середине происходит обман читателя и материал обрывается, а автор перескакивает на другую тему. В итоге нет полной картины что делать дальше. Ещё он там форсит Groovy.
Посоны а подскажите какой-нибудь годно написанный бекенд проект на котлине, чтобы проникнуться? Может есть какие-нибудь примеры, скелетоны и тп. Только не helloworld, а что-нибудь погуще. мимо сеньор с другого стека, думаю перекатиться
>>2426290 А Spring in action тебе тоже не угодил? Сам я учил спринг по алешову(основы di), отусу(галпам по европам в ширь), летскоду(понять как это схематично выглядит в проекте) и уже потом по баелдунгу с докой(после отуса и летскода знал какие темы есть и что гуглить). Еще прочитал по половине Spring in action(такое вот все в ширь, как в плейлистах летскода) и Козьминой(вообще мало полезного вынес, разве что по jdbctemplate глава зашла).
Джава хуйня. На джаве не пишут в Яндексе, а это единственное место, где в принципе собираюсь работать в своей жизни. В принципе не вижу смысла работать где-то кроме Яндекса.
>>2426338 Я скачал курс с отуса, там какой-то опухший чел после попойки еле-еле читает презенташку. Усвоения инфы в таком формате нулевое. И кто-то ещё за это деньги заплатил!
>>2426408 Какой же ты привередливый. Ну не все вкладываются в качество продакшена. Там обычные анальники милд/сенька уровня из галер уровня люкса и банков. Да, половина из них косноязычные, у некоторых дефекты речи. И это онлайн вебинары без монтажа(хотя я смотрел старый курс мелрушный по жавакору, типа смонтированный и там было не лучше). Но на русском они самые квалифицированные из того что можно купить на торрентах. Алишевы/трегуловы это джуны по факту, в скилбрейнсах/яндекс практикумах вообще читают люди в проде не работающие. Немчинский сам уже лет 10 в прод ни строчки не писал(кто у него там сидит - я хз). Еще я проходил курсы от епама, и там был уровень лекций/семинаров чуть выше скилбокса.
>>2426425 Этот кстати наименее косноязычный из них. В курсе 20ого года с торрентов есть один один бородатый - у того дикое заикание. И еще один толстый тоже хуево объясняет.
>>2426431 Ну да, от его шараги я не видел ничего по спрингу. Но вот его ответы на новичковые вопросы иногда выдают, что он не в курсе ничего про индустрию сегодня. Его россказни про жава-ее стек, про эклипс, про микросервисы. Начинал слушать его древний курс по паттернам и мне вообще не зашло, дико много воды и уходит в свои шуточки постоянно, с примерами на коде все очень хуево.
Что должен уметь спринг-конфигуратор мидол уровня? Полгода как джун. Хочу через полгода получить лычку тут или через год свалить в другую контору и получить там. В яндексы не собираюсь. Разве что из маленькой галеры хотелось бы в галеру побольше или в банк(в тинек тоже не собираюсь). Насколько хорошо надо знать спринг, постгрю и джаву? Никогда не работал с кубером и секурити. Насколько это важно? Кубера на проекте нет(изучать самому по курсам?), к секурити не подпускают пока(требовать, чтобы дали потрогать?)
>>2426457 Мидол - это только не про технологии, но и про ебучие софтскиллы. Ты должен быть самостоятельным, тебе можно доверить задачу среднего масштаба, а ты её сделаешь сам, не бегая к лиду за каждым вопросом и, возможно, привлекая к работе доверенных тебе джунов и других миддлов, распределять небольшие задачи между ними, координировать их работу, ревьюить и т.д. Ну и технологии, бестпрактисты и подходы надо знать увереннее, чем их знают джуны, соответственно, надо разбираться во всём, что хотя бы в теории может понадобиться, в том числе твои кубер и секурити, даже если их изучать самостоятельно, а не на работе.
>>2426492 На уровне продвинутого пользователя. Можешь юзать консольку, писать простые шелл-скрипты, устанавливать пакеты, редактировать конфиги в vim или хотя бы nano, хоть раз юзал SSH. На уровне админа/девопса знать не надо.
>>2426470 >бестпрактисты и подходы надо знать увереннее, чем их знают джуны То есть надо осилить клинкоды, паттерны, рефакторинги. Бестпрактисы помню по работе с рестом. Еще какие беспрактисы популярные есть? Ну вот кроме прочего у меня скачаны книжки по углубленной постгре, по микросервисам, по мессенджинг паттернам, кабанчик. Ну и вот секурити с кубером тоже думаю стоит ли уже сейчас смотреть. Тут скорее вопрос про приоритеты в изучении, что больше котируется в среднем по рынку, типа с чего начать, роадмапу типа хочу себе составить. >не бегая к лиду за каждым вопросом тут у меня две проблемы. Я не особо в курсе всех бизнес требований проекта и просто не понимаю некоторых вещей, я полгода на проекте, мидлы по полтора года, а тимлид почти три, начиная с самого раннего планирования. Ну и поэтому меня не зовут на половину созвонов с аналитиками/менеджерами/фронтами. И поэтому разрыв в понимании между мной и старшими товарищами не особо сокращается. Ну и я часто бегаю к тимлиду, чтобы спросить как лучше в архитектурном плане сделать, когда есть несколько вариантов решения. Особенно если это новые для команды технологии и никто в них, кроме тимлида/вообще никто не разбирается. Ну я мог бы и сам решить, но боюсь потом ревьювер не согласится и придется много переделывать. >ревьюить и т.д Ревью мне уже давали проводить. Там был микросервис на средне-начальной стадии(3к строчек кода без тестов, 5к с тестами) с одной фичей(+1,5к -800 строчек, вместе с тестами - 12 коммитов) и я дико заебался. В итоге не очень справился: 1. не хватило знания клинкодства, чтобы тыкнуть в грязные места. 2. не особо знал сути микросерсвиса, куски которого мне давали ревьювить и поэтому например вообще не лез в суть запросов в базу.
Че, стоит это говно отусовское по спрингу смотреть на 80 часов растянутое? Я так понимаю, всё равно аналогов нет. Знаком с бутом, mvc, датой, секурити, aop. Хочу покурить Cloud, WebFlux, Batch, микросервисный пиздеж и тд мимо посмотрел слитый курс от гикбрейнс и устроился жава ждуном, босс сказал учить спринг
>>2426623 > Хотя то что ты перечислил это не все вместе уроков 5-6. То есть 12 часов максимум. Ты про это? > бутом, mvc, датой, секурити, aop Или про это? > Cloud, WebFlux, Batch, микросервисный пиздеж и тд
>>2426680 > бутом, mvc, датой, секурити, aop остальное по ситуации, бывает даже спринг дата и секурити не нужны, их функционал часто заменяется другими инстументами. У босса твоего и спроси, что из спринга тебе надо. Мне ни флукс, ни батч пока не пригодился, хотя может через пару месяцев и дадут таки потрогать реактивщину. Тогда и буду с ней возиться.
>>2426697 Я с такого места уволился на испытательном сроке. У них к такому стеку прилагалось отсутствие тестов, деплой на внешний томкат, полное непонимание как работает проект даже тимлидом, хранимки, лежащие в репошках в строчках, фронт на собственном велосипеде(чтобы сэкономить на фронтовиках). И полностью неадекватный кабан с дедлайном через полтора месяца.
🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋 💖💖C# ONE LOVE💖💖 🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋 🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋 💖💖C# ONE LOVE💖💖 🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋 🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋 💖💖C# ONE LOVE💖💖 🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋 🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋 💖💖C# ONE LOVE💖💖 🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋
>>2426841 Единственный способ познать Спринг - это поступить в подмастерья к Спринг мастеру. И дать клятву никому, за пределами Спринг гильдии, не разглашать секреты Спринга. Тогда мастер раскроет секреты Спринга, а самых одарённых научит аннотации @MakeVseZaebis
>>2426088 >Так можно было бы и петухлин закрыть, и наконец то взять в свои руки единственную IDE для джавы. Ни первое, ни второе нахуй не нужно. Котлин это альтернатива для сахарозависимых, убъешь Котлин пойдут к 🐓#. Они получили на халяву топовую иде зачем им убивать её?
>>2426954 1с, мидол, стаж год, зп та же, бэк. Заебало процедурное слабо типизированное говнецо, хочу сильно типизированное на этот раз. Основной на мой взгляд камень преткновения - необходимость удалёнки, в том плане, что высоковероятно будут сильно мяться на этот счёт, но я не приемлю ничего иного, т.к. не из дс и хорошо себя чувствую дома в уютном креслице (начинал с офиса местного, но свинтил как только смог). Пиздеть про опыт - могу, но надо бы хард скиллы чутка подтянуть, если возьмутся проверить.
>>2426976 >Как так получилось, что адопт под апаче 2.0, а оригинальй попен ждк под жопаэлем? Так бывает, если читать жопой: >Build scripts and other code to produce the binaries, the website and other build infrastructure are licensed under Apache License, Version 2.0. >OpenJDK code itself is licensed under GPL v2 with Classpath Exception (GPLv2+CE). https://adoptopenjdk.net/about.html
А это нормально что я вызубрю hibernate, забуду его, а когда буду работу искать то повторю изученный материал ? P.S. Работа будет только через год :с Hibernate уже вызубрен, просто надоело уже каждую неделю повторять изученные фреймворки, я их не использую каждый день...(jdbc, hibernate, mysql)
>>2427091 За год армии ты, вероятнее всего, хибернейт забудешь напрочь, и потом придётся его не то чтобы повторять - учить практически заново. Хотя смотря сколько времени ты с ним возился, если просто прочитал теории и выполнил пару примеров, то забудешь, а если плотно с ним ебался не меньше месяца, то может, что-то сможешь вспомнить.
>>2427113 Он не говорил, что его в армию забирают, скорее всего это 17 летний пердёж, который почему то решил ждать до 18 лет до работы. И вообще, если хоть что-то реальное чел сделает с хибером то никогда в жизни не забудет это. Если зубрил то конечно забудет через месяц.
>>2427185 Видимо, хостинг там. В whois тоже очень странно, пишут про Панаму и Гонконк, а в определении местоположения сервера - Канада, США, Бразилия и Нидерланды.
>>2427748 Divide and conquer - общее название алгоритмов, где ты делишь все данные/задачи на маленькие подзадачи. Binary search - один из таких алгоритмов, есть ещё, например, merge sort.
>>2427751 Практика - это порешать задачи на литкоде и написать несколько пет-проектов с изученными технологиями. Для этого не надо никаких вкатунских курсов.
>>2427762 Бывают и другие алгоритмы, например, вычисление квадратного корня или тригонометрических функций оперирует ограниченным количеством переменных. В широком смысле алгоритм - любые действия над данными для решения той или иной задачи, то есть весь код, который ты пишешь, состоит из алгоритмов, а ты ведь не только с коллекциями работаешь.
>>2427847 Если бы жаба пиздила хоть что-то из шарпа, все были бы счастливы. Нет у нас на LINQ, ни автопроперти, всё через костыли и примитивно. И ты так говоришь "вы", будто крудомакаки из банков лично вносят фичи в язык. Оракл срать хотел на наше мнение и делает так, как считает нужным. Можешь создать JEP и ждать 10 лет, пока его рассмотрят. Понял, насколько у нас всё плохо? Хотя вряд ли у вас лучше.
>>2427855 Лол нет конечно, джава - это легаси в банках и всякие ООО Рога и Копыта.
>>2427857 >Хотя вряд ли у вас лучше. Лучше. У нас на гитхабе в ишью можно предлагать фичи которые обсуждаются. Уже много каких фич было добавлено благодаря таким постам на гитхабе
>>2427855 Да, дохуя новых проектов с современным стеком. Т.к. уже всё написано, новые проекты сводятся к переписыванию легаси, которое чем-то не устроило бизнес.
>>2427860 Go, .NET, C++. Или комбинации. Или всё в месте. Еще есть доля Python, но он скорее для того чтобы хуяк-хуяк и в продакшн показать заказчику, а затем переделать под нормальный и быстрый язык
Привет, как правильно делать обновление объекта в бд? Мне пришел на контроллер новый объект, неужели единственный способ это каждое поле записать заново в бд, даже если из 20 полей поменялось только одно. Или есть какой-то хитрый способ?
>>2427860 На западе - на всем. Но учитывая контекст - джава весьма популярна, потому что много библиотек для интеграции со всем чем можно, хороший и развитый тулинг, на рынке много разработчиков. Практически весь европейский финтех сидит на джаве или котлине.
>>2427868 >Лучше стабильный язык, чем бесконечные переделки Swift пизда стабильный, да? Каждый 4 патч ломает нахуй старое говно и заменяет на новое. И в чем они не правы собсна, я на самом деле только за за такой подход
Не могу понять, как делать маппинг из sql запроса с джоином, в объекты. Какой интерфейс надо имплементировать? Видел через RowCallbackHandler. Но это выглядит супер-супер геморойно на каждый запрос писать простыню такую.
Ну и в чем шарпомуха не права? Какой толк в обратной совместимости, если на новые лтсы никто не хочет переходить? А многие до сих пор сидят на 8. И на эту 8 с 5ки стали переходить когда 8 уже было года 2.
>>2427936 Потому что только в жабе такое количество легаси, которое хуй перепишешь быстро. >>2427940 Ты не сталкивался с проблемой, когда на одной версии жабы сераер приложений запускается нормально, а на другой он тупо валится со стектрейсом? Хотя откуда тебе, шарпобляди, знать про это.
>>2427964 >Хотя откуда тебе, шарпобляди, знать про это. Конечно, меня ведь предупреждают в release notice о том что при апдейте сломается определенная часть и при апдейте я уже заранее готов и знаю как и что где фиксить.
>>2427964 >Потому что только в жабе такое количество легаси, которое хуй перепишешь быстро. Всё пиво не выпить, но к этому надо стремиться. Всё легаси не перепишешь, но к этому надо стремиться.
>>2427860 На западе в основном вижу много питона, js'а, жабы, дотнета и немного го. Новые проекты тут хз, наверное примерно одинаково распределены доли между го питоном жабой и сишарпом пропорционально их популярности
>>2427856 В том, что обвинение языка в пиздинге фич плохо бьётся с фактом, что язык, из которого пиздятся фичи, изначально спизжен из языка, в который эти фичи пиздятся. Это как если бы я пришёл в крестотред и начал там выть, что крестовики спиздили себе что-нибудь из джавы.
>>2426162 У тебя дислексия? Написано же в настоящем времени, "никто не пишет". Инбифо ты найдешь один свежий говеный ноунейм проект Хуй знает, напомнить тебе, когда все, что ты перечислил, писалось? Надо ли говорить, что того же Голанга или просто не было, или он был в сырейшем состоянии? Жаба сейчас буквально везде мертва, кроме спринга, и в бэкенде ее уже начинают щемить. Оракл дохнет. It's over.
>>2428172 Но по факту на спринге вакансий больше, чем в беке на шарпе и голанге вместе взятых. А твой тейк, якобы на жабе больше легаси и меньше новых проектов, чем на го и шарпе тебе нужно как-то доказать.
>>2428183 Да тут особо никак не докажешь, но он прав, все эти кафки кассандры эластики писались довольно давно, лет 10-12 назад, тогда кроме жабы был С++98/03, шарп под виндой, питон, и скала.
С тех пор и С++ стал гораздо лучше, и голанг вышел, и дотнет портировали на линукс. Скала сдохла, но вместо нее котлин появился.
Так что новых проектов на джаве реально почти что нет. Есть на гошке, котлине и в меньшей степени на дотнете. Жабу как правило тянут везде еще с середины нулевых, тогда, во времена выхода восьмерки она как раз была актуальна.
Сейчас жаба живет только лишь за счет спринга, в целом это легко заметно по количеству проектов, где джава без спринга используется. Да и большая часть библиотек не для бекенда реально застряла где-то в нулевых и начале 10-х и больше не обновляется. Да и в беке до сих пор не смогли R2DBC нормально доделать. И никогда не доделают по всей видимости, так как реактивщина в жабе провалилась.
>>2428183 Хз в чем прикол использовать очень всратый спринг в новых проектах. Нахуя? Чтобы потом дебажить 300 лет, периодически проваливаясь в прокси и кишки спринга? На той же гошке все в разы прозрачнее получается. Код без магии, где ты сам всем управляешь, сейчас больше в почете, чем монструозные ООП языки по типу джавы, шарпа с гигантской магией фреймворков под капотом и жирным тяжелым GC впридачу.
Я тут эта, заебся писать везде implements Serializable, есть какой плагин к мавену, который во все классы это сам допишет? Ломбок там какой или хз чо щес в моде.
>>2428230 >Код без магии, где ты сам всем управляешь, В джаве тоже так можно >монструозные ООП языки по типу джавы Монструозные только дебилы, которые любят говна понаписать. Через 10лет в вашей "гошке" тоже будут кучи легаси кала, как щяс в c++
>>2428215 >>2428230 >>2428172 Ну опять же хуй знает в чем суть спора, но на котлине новых проектов более чем достаточно, а раньше, да и сейчас, на джаве монолиты распиливали на микросервисы. В целом на самом деле на язык разрабу должно быть похуй, если уж собрался работать, то бери любой, но жаба довольно популярна, есть кучи туториалов мурзилок от всевозможных авторов тот же баелдунг, у шарпа кроме мсдн маловато ресурсов будет, про гошку хз, если честно. C++ явно не для бекенда язык, да и на нем в разы сложнее писать, чем на той же жабе, ну просто говно получается почти во всех случаях.
Так что kotlin/java/spring/мб ktor вполне себе актуальный стек технологий на сегодня и завтра. Гигантские инфра проекты по типу кафки докера кубернетиса эластика итд сейчас мало кто пишет, ну во всяком случае я не слышал о чем-то новом и революционном за последние 2-4 года. Ту же кассандру хотели переписать на С++ под названием scylladb, переписывают с 2015 года по сей день, а в проде scylladb так и не появилась, хотя кассандру оригинальную на джаве за несколько лет отпидорасили с нуля до состояния выката в прод
>>2428259 Причем делают это в треде, посвященном конкретному языку... И эти люди собираются работать прогроммистоме... Я подозреваю что это те же люди, которые делают вызов к БД из toString()...
>>2428316 Объекты не создаются, а декларируются как "зависимости". DI и IoC на самом деле тупые вырожденные масло-масляные термины, порожденные мосхом быдлокодеров-теоретиков, не осознающих простой сути вещей. Ведь в мире математики, определение функции f(x,y) { return x+y; } по суте так же является имплементацией IoC, ибо аргументы её не создаются внутри реализации. DI это конкретный способ передачи зависимостей, грубо говоря, запихувание их в поля объектов и аргументы вызовов. Как альтернатива - патттерн "локатор" , это как если бы наша f(x,y) была бы определена как f(){ return Locator.find("x") + Locator.find("y"); } В общем гумусная кринжатура. Но следует заучить, чтоб на собесах не чморили.
Наиболее наглядная выгода IoC наблюдается во взаимном использовании критичных ресурсов. Например, потоков. В духе IoC код не создает потоки сам, а имеет какую-нибудь аннотацию типа @ЗапустиМеняНах, контейнер находит классы с этой аннотацией и запускает их, таким образом получая контроль над потреблением процессорного времени. В общем, в бизнес коде происходит работа, а выделение цопе происходит контейнером - роли четко разграничены
По иронии судьбы, IoC/DI контейнеры типа спринга делают хорошо все что угодно --- интеграции с разными хероборами типа версерверов, баз и очередей, контроль контроль доступа, скоупа и жизненного цикла разделяемых ресурсов - все. Кроме непосредственно DI и IoC. Работу над зависимостями контейнеры делают просто отвратительно, да и сама идея отдать зависимости на откуп софта --- вырожденческая.
>>2428322 Это слегоньца подмена понятий. Но хорошая подмена, годная.
В мире математики едва ли есть вообще понятия типа "зависимость" и "создание аргументов". Создание аргументов - это чисто императивная штука, присущая архитектуре наших физических и виртуальных машин, с их ленточкой инструкций, процессором и памятью. В математике как правило такой хуйней как "создание и уничтожение ресурсов" не занимаются. Функция в математике --- уже сама по себе и есть декларация зависимости между ее аргументами и результатом. Это литералли определение термина "функция" --- описание зависимости.
И в этом суть разница между императивным и декларативным программированием. Стейтмент "объекты не создаются, а декларируются как зависимости" --- ни что иное как агитация кодить декларативно, а не императивно. Что в целом годно. Но имеет свои нюансы, так как мы по прежнему кодим под машинки с императивными процами и разделяемой памятью.
Пф. Апелляция к оптимальности кода - самый тупорылый аргумент, который котировался разве что во времена написания этой цитаты. По настоящему решают количество и дешевизна человекочасов.
>>2428400 Просто возникает резонный вопрос, а как было до IoC? Есть примеры не декларативного программирования? Где заканчивается недекларативное программирование и начинается инъекция? Мне приходит только создание потока, какого-нибудь соединения типа сокета, т.к. тут реально идет отъем неиллюзорных ресурсов. Но и даже в этих местах, за счет инкапсуляции, только на основе исторически сложивщихся контрактов можно утверждать, что ресурс был реально потрачен или создан. В принципе на уровне агента jvm можно сделать управляемым создание каких угодно объектов и наебать клиентский код.
Сейчас общаюсь с челиком, ему 19 и он РАБотает в одном из банков сверхдержавы удалённо. Вышки, соответственно, у него нет и он в данный момент её не получает. Интересно, такое может быть, или это просто рофл?
>>2428456 > Интересно, такое может быть, или это просто рофл? Может конечно, лол. А что ему собсна мешает? Если он в 16 начал вкатываться, в 17-18 устроился на работу, получил опыт ахуенный, а сейчас спустя два года стал миддлом на удаленку. Почему бы и нет?
>>2428460 >>2428456 Знакомый дропнул вышку и работает в сбере спокойно разрабом. Вышка по-хорошему нужна только там, где нужно реально шарить в CS, какие-нибудь исследования в машобе, обработке сигналов, компьютерное зрение, компиляторы. Вот там уже нужна вышка, причем не просто диплом, а знания. В банках на большинстве позиций никакого образования, кроме школьного, не нужно.
>>2428465 В каких-то банках можно и на удаленке, где-то нельзя, но в большинстве мест совмещенный режим. Сбер слишком большой с кучей дочерних организаций. Где-то и фулл удаленка есть, где-то в офис заставляют 2-3 раза в неделю приезжать. Где-то и полная пятидневка в офисном рабстве наверняка есть в сбере.
>>2428476 В сбер устроиться? Полгода-год назад было несложно, потом после февраля сбер резко уменьшил найм, сам понимаешь. Да и вообще сбер считался не сказать, что топовым местом работы, многие хейтили его, хотя он огромный ппц, там куча команд и везде разные условия и разный уровень.
>>2427869 для кобола не написали спринг, да и кобольщиков хуй найдешь за адекватные деньги - а жабистов дохуя >>2427889 >>Питон 3 вышел в 2008 самая древняя джава из используемых сейчас - Java SE 8 (18 марта 2014) сейчас пишут в основном на 11 (сентябрь 2018) осенью выходит спринг 6 и у него минимальные требования - Java SE 17, через полгода-год начнут потихоньку пересаживаться на нее
>>2427940 >>не хотят учить новые фичи Чаще противником обновлений становится бизнес, а не разрабы. Если архитектор смог втащить реактивный стек - хорошо, нет - команда доедает легаси на жабе 8. >>2427967 >>в release notice о том что при апдейте сломается определенная часть и при апдейте я уже заранее готов и знаю как и что где фиксить. пря так и пишут что сломается либа от васяна версии 5- и фреймворк от ирокезов версии 4- ? >>2427969 >>Всё легаси не перепишешь, но к этому надо стремиться. в субботу и воскресенье в свое личное время без оплаты, ок?
>>2428215 >>живет только лишь за счет спринга >>не для бекенда реально застряла где-то в нулевых А что не так то? Язык прочно занял свою нишу - бэкенд для крупняка - там и сидит. Работы хватает, писать на спринге не сложно. >>так как реактивщина в жабе провалилась. Так уж и провалилась? Там конечно полно костыкей и не очевидных вещей, а с выходом лума это все по пизде пойдет, но сейчас то все работает и результат заметен. >>2428230 >>в чем прикол использовать очень всратый спринг в новых проектах. спринг 4 без бута уже и не встретишь нигде >>Код без магии, где ты сам всем управляешь, сейчас больше в почете Охуеешь писать тонны кода для простейших действий. Я лучше напишу @MakeZaebis и похуй как он там написан, если он ведет себя предсказуемо и понятно. Если тебе хочется все контролировать - пиши на С. >>жирным тяжелым GC впридачу когда ворочаешь гигабайтами данных в памяти - на несколько мегабайт уже похуй. Время разработчика дороже планки памяти.
Сап. Подскажите плиз... Использую logback + slf4j Нифига не могу понять, как разделить уровни логирования для разных аппендеров. Хочу чтобы в файл шло все что приоритетнее чем info, а в stdout все, начиная от TRACE. Может нужно заводить два разных логгера? Но я тогда не понимаю как их в конфиге описать, и смысл ROOT тоже не понимаю. Где можно про все это нормально почитать?
Вчера пытался запустить идею на старом ноуте. Идея запустилась, но ноут завис на час. Причём даже после закрытия самой программы в процессах всё равно остался какой-то процесс идеи. Такое ощущение, что там явно какой-то майнер вшит. Эклипс тоже тормозит, но адекватно закрывается. Самым легковесным оказался как ни странно VS Code. Жрёт всего 500Мб ОЗУ.
>>2428601 >Чаще противником обновлений становится бизнес, а не разрабы Да бизнесу ваще пахую че там на какой версии сделано, они хотят быстро + качественно + дешево. >пря так и пишут что сломается либа от васяна версии 5- и фреймворк от ирокезов версии 4- ? Да, прям так и пишут. >в субботу и воскресенье в свое личное время без оплаты, ок? Ну кабанкабаныч.
>>2428726 >>Да бизнесу ваще пахую че там Вот именно что бизнесу похую, поэтому он не хочет оплачиавать переход на новую версию уже существующего кода. Пердольтесь с тем что есть, пока все разрабы не разбегутся или проект не сдохнет. >>Да, прям так и пишут. Чудеса какие, почти как спринг бут. >>Ну кабанкабаныч. Ты что говнокодер и хочешь писать на легаси что ли?
Как сделать так же красиво, как с енамами, но чтобы новый инстанс для каждого члена класса?
public class Foo { enum BarGroup { SMALL, MEDIUM, BIG, etc; List<Bar> bars = new LinkedList<>(); } public void function () { BarGroup.SMALL.bars.add(new Bar()); for (Bar bar : BarGroup.MEDIUM.bars) {} } }
Хочется так же красиво и кратко обращаться к фиксированным группам, но с енамом они статичные и делят один инстанс.
Каждое значение енама и есть отдельный инстанс класса енама. Поле bars у тебя не статическое, линкед лист у тебя создается в момент инстанцирования BarGroup, следовательно каждый из значений енама будет иметь отдельный независимый от остальных лист. Ничего они не делят. С чего ты взял что делят?
public class Main { enum BarGroup { SMALL, MEDIUM, BIG;
public java.util.List<String> bars = new LinkedList<>(); }
>>2429158 ну типо. коллега сказал что у него за 2м макс все с нуля стартуется - и тест инвайрнмент и сама aппликация. иногда бывает еррор по типу "waiting for tcp socket on localhost to become available" точно что то не так с самим докХЕРом
>>2429254 >Любой мидол может с пары зарплат купить себе макпук. Только если мидол C# девелопер, жава сеньёр себе может тока хуй за щеку получить, при этом еще и доплатить придется.
>>2429263 Это ты выводы сделал с того, что в твоей долбильне относятся к тебе как к скоту и ебут в пердачелло? У нас всё нормально и никто нас в очко не ебет.
>>2429128 Для объектов. class Foo { enum BarGroup {...} Foo() { BarGroup.SMALL.bars.add(1); sout(BarGroup.SMALL.bars.size()); } } class Main { main(...) { new Foo(); // sout: 1 new Foo(); // sout: 2 } } Так сами значения енама статичные, в том-то и дело. Каждый следующий объект меняющий что-то внутри значения енама видит, что сделал предыдущий.
У меня вопрос. На собесах просят решать задачи с литкода. Можете пояснить зачем это нужно? Готовился совсем к другому, на эту хуйню всегда было жалко времени. Это такой искусственный заслон от вкатышей? Или реально на работе часто надо рекурсивно обходить деревья?
>>2429320 У задач на собесе только одно назначение: проверить твои навыки алгоритмического мышления. Если написать круд может любой вкатыш, то при необходимости реализовать что-то сложнее ты должен сесть, подумать и сделать, и даже если рекурсивно обходить деревья и намеренно использовать LinkedList вместо ArrayList надо раз в несколько месяцев, ты должен справиться с этим самостоятельно, а не бежать к сеньору, чтобы он придумал оптимальное решение и сам всё сделал.
>>2429326 Очень спорно. Т.е. ты предлагаешь не решать вопросы в команде, а взять лучшего алгодрочера в надежде на то что он напишет самый охуенный велосипед?
>>2429360 Какие ещё "вопросы в команде"? Ты собираешься код писать или обсуждать на созвонах по нескольку часов, как его писать? Есть такая вещь, как бизнес-логика, для неё нет готовых библиотек, которые можно переиспользовать, нет типичных подходов и алгоритмов, нет кода на стековерфлоу для копипастинга, надо всё продумывать самому, так что никакой это не велосипед. Если ты способен написать велосипедную реализацию широко используемого алгоритма, то и более специфичный алгоритм для бизнес-логики ты придумать сможешь с большей вероятностью, чем тот кандидат, который не смог даже словами описать примерное решение. Поэтому да, надо искать алгодрочера, они, как показывает практика, справляются с такими задачами намного эффективнее, чем те, кто прошёл курс и сразу пошёл на собес. Это даже важнее, чем знать хибернейт и кишки спринга.
Ну здрасте. Как ты себе это представляешь. Класс есть класс, Объект есть объект. Шашечьки или ехать. Получая ссылку на объект, ты получаешь ссылку в том числе на значения его атрибутов. Хошь уникальные значения атрибутов - создавай уникальные объекты. А енам - это всего лишь конечный сет уже созданных объектов. В байткоде после компиляции енам вообще просто класс с пучком статических констант.
Сделай вместо енама иерархию классов, с подтипом для каждого значения твоего енама. Если ты в новых версиях джавы, присмотрись к sealed classes.
>>2429388 Так я и спрашиваю как похожий результат получить. Просто вот такая альтернатива, например, выглядит совсем всрато, когда делаешь отдельный класс, плодишь кучу переменных, делаешь присваивания и обращаешься как к отдельной переменной: class Foo { ㅤclass BarGroup { ㅤㅤList<Bar> bars = new LinkedList<>(); ㅤ} ㅤbarGroupSmall = new BarGroup(); ㅤbarGroupMedium = new BarGroup(); ㅤbarGroupBig = new BarGroup(); ㅤbarGroupEtc = new BarGroup(); ㅤ// сколько угодно их ㅤpublic void function () [ ㅤㅤbarGroupSmall .bars.add(new Bar()); ㅤㅤfor (Bar bar : barGroupMedium ) {} ㅤ} }
>>2429621 Да. Если место не кал без тестов, то первые полгода ты тестов будешь писать втрое больше, чем кода. На собесах вряд ли спросят по ним, но в тестовых применить такую хрень надо.
>>2429624 За неделю скорее для приемлимого уровня. Самое сложное это то, что тестовый контекст это немного другой контекст и конфиги там по другому ищутся.
>>2429675 После статей Борисовну наверни. https://www.youtube.com/watch?v=7mZqJShu_3c Но не сильно углубляйся, он как обычно слишком много умняка из кишков тащит. Но для отдаленного представления что там в кишках - норм.
>>2429724 Тру, смотрю на синтаксис и понимаю, что туда просто запихнули весь тот синтаксический сахар, которого по мнению дизайнеров языка так сильно не хватало в жабе.
Самое смешное, что лямбды в котлине нужно оборачивать в фигурные скобки, а в жабе нет, лол. Вообще какой-то всратый прикол с этим выносом лямбды из аргументов функции за их пределы.
Сейчас вот самое интересное буду тыкать - корутины. Все остальное не более чем better java с null safety воспринимается.
>>2429749 Если джун - ты не готов в 100% случаях. Все джуны тупые и нихуя не знают + не умеют, так что тут просто надо брать и делать готовясь к худшему и что после собеса в команде тимлида появятся новые локальные рофлы.
>>2429749 >>2429750 Можете сходу написать Lock-Free очередь? А неблокирующий список? Можете рассказать про CAS, кэши, MESI протокол, в чем плюсы/минусы CAS и LL/SC?
Добрый день. Я затуп и сейчас, скорее всего, напишу полной хуйни, но можете подсказать или направить, где такое можно спросить?
Хочу на Kotlin+JavaFX (используя различные фишки из новых версий Java) сделать десктоп приложение. Это приложение будут в основном использовать на Windows люди, у которых либо нет jvm вообще, либо java 8 версии. Слышал, что для такого вроде как можно использовать GraalVM.
Подскажите, что подойдёт ли graalvm для этого? Если да - что у меня должно быть установлено помимо java, чтобы уже начать писать приложение?
>>2429776 >является ли число полиндромом А в чем прикол? В цикле берем цифры с конца числа и по ним конструируем новое, постоянно умножая на 10 и прибавляя очередное число. Если в конце исходное и сконструированные числа равны, то это палиндром. Тут основная фишка это догадаться, что нужно конструировать число умножая на 10 постоянно, для многих вкатунов, которые давным давно учили все эти свойства умножения деления может быть тяжеловато.
>>2429898 Микросервисная архитектура - это ведь рест сервисы, а общаются, запросы друг к другу они делают через брокеры сообщений, к которым как раз и относится кафка. Или я что то не так понял?
>>2429914 >иначе нахуя им рест? Им и не нужен, он нужен фронту или внешним клиентам. А для общения между сервисами есть вещи и получше. gRPC для синхронных сообщений, очереди для асинхронных.
>>2429940 Спринг эмвиси, дату жопу, и секьюрити с докером. На поверхностном уровне. Ну это для стажера нужно. Для ждуна уже кафки микросервисы кубернетисы уметь разворачивать.
>>2429955 Внутренний клиент это тот кто разрабатывается вашей же компанией. В основном это влияет на обратную совместимость API, аутентификацию, балансировку, защиту от DoS, возможность долго держать открытое соединение и т.п.
>>2429954 >фор(;а>0:а/=10) Вот тут-то и проблема, у тебя будет столько итераций цикла сколько знаков в числе. А там речь шла о том, что можно херакнуть по модулю и получить сум в одно действие.
Рест настолько не используется в общении между микросервисами, что в спринг-клауде есть специальная обертка Feign Client, чтобы рест-запросы выглядели, как зависимости.
>>2429995 Чел, синхронное общение между микросервисами это намного чаще рест, чем grpc. Оптимизировать трафик нужно далеко не везде. А с рестом можно по одной и той же апишке отдавать и фронту и другому сервису(ну с разными ендпоинтами, разруленными апи гейтвеем).
>>2429619 >https://rieckpil.de/spring-boot-test-slices-overview-and-usage/ Бред ебаный. А если у меня кастомная валидация для webmvc или кастомный конвертер для jdbc через компонент сделан, с этими хуевинами они не подгрузятся? И че тестировать тогда, то что и так уже протестировано при сборке самого спринга?
>>2430021 >если у меня кастомная валидация для webmvc это и тестируется. кидаешь в тест невалидные и пограничные запросы и получаешь правильную ошибку с правильным сообщением об ошибке. Типа mockMvc.perform(post(URL) .contentType(MediaType.APPLICATION_JSON) .content(organizationJson)) .andDo(print()) .andExpect(status().isBadRequest()) .andExpect(content().json(expectedInvalidMessageJson)); С тестами на ждбс не работал, скорее всего тоже что-то такое есть.
>>2430028 >Testing the Web Layer With @WebMvcTest >What's not part of the Spring Test Context: @Service, @Component, @Repository beans Кто-то тут пиздит
>>2430026 >вызываемый сервис не может отличить когда к нему стучится внутренний клиент, а когда внешний То что ты дебил это половина проблемы. Важно то, что ты воинствующий дебил который продолжает всем демонстрировать это.
Лучше закрой пасть и почитай про авторизацию, про фаерволы, АПИ гейтвеи, глядишь и поумнеешь но это не точно.
Опять шизики борются с реальностью. Никто не спорит, что для межсервисного взаимодействия есть куча вещей получше, чем рест. Но все равно в подавляющем большинстве на деле это рест.
>>2430058 Рест - лучший способ превратить микросервисы в распределённый монолит, где временная недоступность одного сервиса приводит к ломанию половины функциональности. > в подавляющем большинстве на деле это рест. Это лишь означает, что в подавляющем большинстве на деле микросервисы суют туда, где лучше работают монолиты.
>>2430035 >>2430048 как ты узнаешь что рест апи твоего сервиса не использует другой микросервис который разрабатывается другой командой в твоей же компании? все сертификаты на месте
>>2430071 Ну и поебать, даже если распределенный монолит(а ты шизишь, ни в одной книге по микросервисам не написано никогда для взаимодейсвия не использовать рест). Распределенный монолит удобнее как минимум независимым деплоем. И уже за это его стоит тащить в проект.
ЗП 700к. На счету уже 11 лямов. Трачу каждый месяц 30к, 50к иногда максимум. Самая большая покупка - комп за 600к. Вторая покупка - квартира в Воркуте за 150к. В чем я не прав?
>>2430396 Во всём не прав. Во-первых с каждым годом твои деньги горят из-за инфляции, во-вторых - покупка квартиры в Воркуте блять. В-третьих не прав потому что не тратишь деньги, а копишь на старость видимо. Ну анальничек, хули с тебя взять. Копи-копи, как помрёшь - всё достанется пыньке или его дочурке.
>>2430402 Я не коплю, я просто не знаю куда тратить. Всё что нужно было мне уже купил. Щас бы той самой горящей жопы, как в молодости, я бы всё въебал в какой-нибудь амбициозный проект.
>>2430402 И в чём проблема квартиры в Воркуте? Рай на земле, по моему. Никакого жаркого лета, дешёвые квартиры (халявные почти что), а больше двачеру и не нужно.
Пацаны, пытаюсь с чего-то начать в Спринге разбираться. Нашёл по ссылке в шапке:
Широко известный в узком кругу лиц, Евгений Борисов периодически выступает с докладами, в которых разбирает устройство Spring по кусочкам. Делает он весьма весело, задорно и понятно. Рекомендуем приобщиться к его докладам:
Spring-потрошитель; Spring-построитель.
- так вот потрошитель это видос от 2014 года. Ниче, что 8 лет прошло? Или всё ещё актуально?
>>2430524 Пару часов шерстил btdig и гугл. Юмор в том, что именно этого курса на юдеми нет - он заархивирован. Вместо него предлагается ебашить, видимо, по бутовому курсу на 100500 часов.
>>2430590 >Что за курс? Spring Core - Learn Spring Framework 4 and Spring Boot >Кто автор? John Thompson >Тоже может гляну на досуге Да вроде он неспроста заархивирован — судя по темам, покрывается курсом Spring Framework 5: Beginner to Guru Но вангую, что в последнем может быть сильнее, чем нужно, урезана тема XML-конфигурации, да и по представленным темам там больше часов, что может помешать получить нужное быстро. Так же вангую, что мне мог бы помочь статический айпи, чтобы его догрузить, но не факт (вроде трекер сообщает о трёх сидах, а коннектятся только 2. Возможно у третьего как раз есть весь контент)
Потрошитель --- действительно нетленка. А вот построитель --- унылая НЕХ. Борисов --- крайне годный чел когда нужно понять как устроен спринг изнутри, и как работают все эти сраные аннотации под капотом. Но вот когда он начинает попутно касаться тем дизайна, SOLIDа там всякого, поддерживаемости --- просто скипаю. Такую дичь порой несет, что моск в трубочку сворачивается от этой шизофазии. В построителе такого было навалом.
Впрочем, справедливости ради, в построителе интересно было послушать исторический референс про жизнь до DI контейнеров, и всякие ObjectFactory.
Подскажите плес, как работать с орм через спринг и использовать декларативные транзакции. Я понял, что нужна какая-то зависимость, но сходу в инете не нашел, какая именно. Может еще у кого-то будет ссылка на годную статью по этому поводу, буду признателен, если кто-нибудь скинет
>>2430532 >>Евгений Борисов >>Делает он весьма весело, задорно это так >>и понятно. только если ты хотя бы джун+, а лучше мидл >>Ниче, что 8 лет прошло? Или всё ещё актуально? БАЗА спринга все та же
В мавен централе есть какие то способы узнать количество скачиваний артефакта? А то там только количество использований в других централовских артефактах.
>>2431285 че там учить то? тровабл - главный, но ловить его смысла нет, ерор - тебя не ебет, эксепшены - убут и в общем случае его и ловишь, от эксепшенов есть один нормальный - рантайм и вся остальная пораша, на которую надо вешать @SneakyThrows
>>2431314 >>А если спросят куда относится арифметикЭксепшен? Ни разу такую хуйню не спрашивали, но у тебя все равно шансы 50 на 50. На собесах скорее спросят чем отличается чекед/анчекед и что нибудь про трайс ресурсами кетч файнали.
Указывать ли мне ссылку на гитхаб в резюме? И вообще нужен мне какой-то нормально выглядящий проект в портфолио? Сильно это влияет при первом трудоустройстве по вашему опыту?
>>2431500 А по подробнее можно, какого уровня пет мне высрать, чтобы можно было его упомянуть? Вряд ли дефолт круда с интерфейсом из нулевых будет достаточно
>>2431728 Я имел ввиду последние курсы или вот-вот выпустившихся технарей по профилю. На них больше обращают внимания и охотнее берут на всякие оплачиваемые стажировки и джуновские вакансии. Меня пару раз заворачивали со стажировок от крупных галер из-за отсутствия вышки.
>>2431479 Созда пет и указав ссылку на гит ты дашь работодателю понять что ты просто безамбициозный технарь-задрот, используемый для затыкания дыр. Резюме уважаемого человека должно вызывать у работодателя некоторый трепет и дрожь в коленках, чтоб у него в голове сразу возникал план как извиняться перед кандидатом за то, что осмелились пригласить его на собеседование.
Поставил значит я зависимость на спринг орм, но у меня почему-то какая-то хуйня с классами, которые оттуда пришли: некоторые поля горят красным, типо класс нот фаунд и когда я хочу как в гайде сеттером передать допустим вендор адаптер, пишет мол этот класс не имплементирует нужный интерфейс, хотя все он имплементирует на самом деле, только этот интерфейс в провайдед указан с полным именем пакета. Какая-то хуйня с транзитивными зависимостями судя по всему. Можно ли что-то в мавене указать, чтоб оно само починилось?
>>2431821 В мавене все транзитивное по дефолту сосётся, значит ты недочитал гайд где сказано что такие-та зависимости не транзитивные, надо добавить вручную. Вообще стоит отскочить тогда назад и освоить элементарно создание проекта например, прежде чем в спринг лезть.
>>2431797 >>2431801 Да не тряситесь вы бля. Я и не говорил что конкретно этот код медленный. Он не читаемый. Если уж оф. разрабы джавы не могут в нормальный и читаемый код, то что уж говорить о тех кто пишет на джаве?
>>2431857 >Он не читаемый Тут то как раз вообще вопросов нет. Загляни в код компилятора эклипс, там вложенность if-ов такая, что на два экрана вправо надо перематывать - вот это рили пример кринжа
>>2431857 > Если уж оф. разрабы джавы не могут в нормальный и читаемый код, то что уж говорить о тех кто пишет на джаве? Что о них говорить? Лучше ничего не говорить, чтобы случайно не оказаться долбоёбом. Спойлер - люди, придумавшие человеческие языки, были тупее тех, кто их использует.
>>2431862 Интернет магазин аля озон, клон хедхантера. ИМХО интересный пет проект и на джаве - вещи несовместимые, хотя зависит от того, что считать интересным...
>>2431937 Да почему. Лично я ни на одном динамическом языке не смогу написать в одно рыло что-то, чтобы оно было интересным, потому что интересное - значит достаточно большое, а достаточно большое на динамикобожественном языке - значит нереализуемое в одиночку. Остаётся джава и шарп из числа тырпрайз языков. Гошку не считаем, т.к. лично я (опять же) не особо понимаю какой интересный пет на ней можно написать. Шарп кстати пизже джавы в плане петов, во многом потому что юнити (а кто не хочет сделать игру).
Это то как раз эталон читаемого кода, внезапно, без шуток. Вообще не важно сколько там кейсов свича и вложенных друг в друга блоков. Важно что все это непотребство сокрыто за вполне себе компактной читаемой сигнатурой метода, из которой сразу понятно что этот метод просто трансформит массив в строку, проходя вглубь. Тебе с 90% вероятности и не придется читать эти свичи, потому что читая клиентский код ты просто встретишь вызов deepToString и сразу из названия поймешь о чем речь. Оставшиеся 10% --- это если там бага, но такую сигнатуру и тестить удобно.
Если уж хошь набросить на нечитаемость --- чекни спринг и его нутря. Вот уж где хтоническая ублюдочная ебанина из абстракций. Классы в нем как будто коллекционируют в своем имени название дизайн-паттернов. AbsctractSingletonObserverFactoryЗалупыBeanБля.
>>2432153 >потому что читая клиентский код ты просто встретишь вызов deepToString и сразу из названия поймешь о чем речь Ну вот когда увидел этот метод - я пошел гуглить что он делает, потому что его название нихуя никакой конкретики не несет.
>>2432164 >deepToString >глубина в строку Ну как грица держи в курсе. Лан джавадебил, я спать. Завтра поругаемся и будем решать чей кал вкуснее. Спокойной ночи
Парни, надо замутить максимально простенький фронт для бэка. Где можно почекать как на жыэсе мутить jsonы и кидать их на бэк но без детального углубления?
>>2432185 Читаешь про синтаксис JS на каком-нибудь learn.javascript.ru, скипаешь детальные описания приведения типов и всякую хуйню, вроде что будет при сложении undefined и NaN, затем ищешь про функцию fetch(), JSON.stringify(), JSON.parse(), и больше тебе не нужно ничего.
>>2432216 > забыть про сраный js Хуй знает, как это вообще возможно, если вместо простенького фронта надо глубоко окунаться в канализацию JSX, вебпаков, нпмов, бабелей, тайпскриптов, размазывать на десятки файлов то, что без фрейморков пишется в 50 строчек в одном HTML-файле. Любые фреймворки нужны для крупных проектов, чтобы говно не слишком сильно растекалось, в простеньком фронте это из пушки по воробьям тем более для тех, кто испытывает патологическое отвращение в JS.
не согласен. js - говно. в котором копаться - себе дороже. но в то же время, если взять фреймворк, у которого есть требования к расположению файлов, то собственно js перестает отсвечивать. те же классы, те же ивенты, простого немного другой синтаксис.
если пытаться сделать то же без фреймфорка, то будет пиздец, где придется разбираться с тем, как работают ивентлистнеры, всплытия, асинхронность, порядок загрузки, отличия браузеров, когда к чему можно подписаться, и ... хз, в общем куча js и фронт related говна.
>>2432224 > придется разбираться с тем, как работают ивентлистнеры, всплытия, асинхронность, порядок загрузки, отличия браузеров Никогда не придётся в простеньком фронте.
для двачеров это нетипично, но в офисе в курилке приходится общаться с другими.
вот и вынес общие ощущения о том, что людям заходит.
angular очень похож тырпрайз. смешивание шаблонов и логики и налет функциональщины отвращает от реакта. вью мне не нравится, кривой ангулар, svelte - локоничный и понятный.
ну какой заслон? алгоритмы максимум на пару недель дроча литкода и минигрантия для компании, что долбоеб-разраб не будет писать квадратичную сложность там, где возможна логарифмическая
>>2432234 Заслон от курсодебилов, которые не справятся со своими трудовыми обязанностями. Надо просто потратить чуть больше времени на изучение алгоритмов, а не нетерпеливо бежать на собес сразу после запустившегося спрингбута.
> алгоритмы максимум на пару недель дроча литкода В таком случае согласен.
> не будет писать квадратичную сложность Огромному количеству людей просто похуй, даже если они знают алгоритмы, за это никто не похвалит и премии не даст. И вообще ситуации такие возникают не далеко каждый день.
>>2432236 >Заслон от курсодебилов Крудодебил и курсодебил братья навек)
>бежать на собес сразу после запустившегося спрингбута Боишься, что барин осознает, что вчерашний курьер из Деливери Клаб способен делать твою работу?
В целом удивлен скоростью ответа в тематике, даже в /po лахта и ципсо не так оперативно отвечают.
>>2432257 > Боишься, что барин осознает, что вчерашний курьер из Деливери Клаб способен делать твою работу? Наоборот не боюсь. Почитаю здешних шизиков и совершенно не переживаю о конкуренции.
>>2431808 >>должно вызывать у работодателя некоторый трепет и дрожь в коленках Ты не разбираешься в кабанах. Нельзя испытывать трепет к нижестоящему, это физически невозможно. Ты ж не испытываешь трепет перед рыбиной которая клюнула на крючок и ты вот-вот ее вытянешь на берег. Будет максимум - азарт, ощущение что это ты молодец, подцепил такого кадра. >>извиняться перед кандидатом Какие то омежные проекции у тебя. Он же его не боссом своим просит стать, чтоб тот его компанию из говна вытянул. Программист - обычный работяга, как охранник или грузчик, только чуть полезнее и дороже.
>>2432226 >>в офисе в курилке приходится общаться с другими. Я не курю, но иногда хожу с коллегами-наркоманами в курилку, чтоб обсудить что то, когда их прижимает, а ждать неохота. Не помню чтоб за эти разы в курилке разговаривали не те, кто туда пришел вместе. То есть придут пятеро одиночек - все будут просто молча курить, а потом пойдут назад.
>>2432235 >>алгоритмы максимум на пару недель дроча литкода Зачем тогда спрашивать алгосы у вкатуна, который ближайший год не прикоснется к коду, где они могли бы понадобиться? Он скорее всего будет валидацию развешивать, опечатки исправлять, круды простенькие делать, а все сложные и интересные таски, тем более требующие знание алгоритмов, отдадут мидлам и выше. >>не будет писать квадратичную сложность там, где возможна логарифмическая 1 - есть ревью 2 - похуй, если стек не байтоебский и нет больших данных. лишний запрос в базу сведет на нет все твои локальные оптимизации. >>должен справиться с этим самостоятельно, а не бежать к сеньору Ты думаешь вкатун не сможет погуглить как это решается самостоятельно? Не помню чтоб меня вообще хоть кто то учил, пока был ждуном. Кидают задачу - ебись как хочешь. Максимум - можно спросить какой вариант из нескольких подходящих подходит лучше в конкретном проекте, но частый ответ "решай сам" >>2429365 >>бизнес-логика, для неё нет готовых библиотек, которые можно переиспользовать, нет типичных подходов Если первый раз что то в проекте пишется - то не надо давать это ждуну, если что то подобное уже было - джун сможет скопипастить решение и подогнать под задачу. Так он и научится заодно правильному подходу.
>>2432309 Анон видимо хочет, чтоб ты не вкатился. Стримы используют всегда, по ним и на собесах спрашивают часто. Лямбды в чистом виде реже, но тоже понимать надо. А то попадешь на реактивный стек и не будешь понимать что происходит. Но там и сложного ничего нет, просто немного другой синтаксис.
>>2432406 > Анон видимо хочет, чтоб ты не вкатился. Зато хочет, чтобы в шарпе было овердохуя вкатышей, как в питоне, чтобы были тысячи человек на место.
Как бы вы сделали?
Аноним13/08/22 Суб 13:05:49№2432457447
Пацаны, есть два сервиса. Когда пользователь идёт на один адресок, который обрабатывает сервис 1, сервис 1 должен просто постучаться, без всякой информации, в сервис 2, чтобы сервис 2 в ответ отправил ему кое-какие данные, сервис 1 обработает эти данные и уже пользователю покажет результат обработки. Всё это должно быть через kafka. Как это лучше сделать? Мой вариант - Сервис 1 должен слать сообщение с пустым value, Сервису 2 похуй на value, он просто подписан на топик, и увидев что-то новое в топике, сформирует данные и вышлет назад? Мне кажется, это должно быть не так реализовано, посему реквестирую "как надо". Как сервису 1 сказать сервису 2, что мне нужны от тебя данные, при этом никаких параметров или данные при реквесте сервис 1 не передаёт?
>>2432406 Так я не про собесы, а сам язык и практику спршивал, чтобы получить ответы в духе "да, это сильно облегчает жизнь и с кодом приятно работать впоследствии" или "нет, это полный кал, создает большие проблемы в будущем".
>>2432572 Поясню что имел ввиду. Я передаю в bindingResult с валидатора эрор_реджект и через проверку ифа он должен выбрасывать метод ExceptionManager внутри которого инфа с bindingResult должна закидываться в разные (в зависимости в каком методе контроллера все происходит) исключения. И собственно вопрос в том, как в методе ExceptionManager бросать не через throw new куда можно закинуть только одно исключение, а шоп метод динамически выбирал какое исключение надо бросить.
>>2432584 >И собственно вопрос в том, как в методе ExceptionManager бросать не через throw new куда можно закинуть только одно исключение, а шоп метод динамически выбирал какое исключение надо бросить. В throw можно просто передать заранее созданный объект.
throw createException(1);
private Exception createException(...) { ... }
А так, почему бы в самом методе валидации и не кидать экспшн?
>>2432457 >Всё это должно быть через kafka. Зачем? Кафка нужна если требуется персистентность или асинхронность, а у тебя тут чисто синхронное взаимодействие. Юзай REST а лучше gRPC.
>>2432623 Ты работать за деньги хочешь или для себя (причём без перспективы нанимать людей чтобы они работали на твоих проектах)? Если 1 - то это отраслевой стандарт, это надо знать. Если 2 - то вообще пiхуй, хочешь юзай не хочешь не юзай. Твоя жизнь - твои правила.
>>2432642 И что мешает из валидатора вызвать ExceptionManager чтобы он просто сгенерировал сообщение? А еще лучше сделать отдельный класс для генерации сообщений.
В крайнем случае можно из валидатора возвращать функцию Function<String, Exception> на вход сообщение, на выход готовый экспешн. Но это уже костылинг
>>2432711 >Босс сказал - учи кафку Спроси его зачем нужна асинхронная коммуникация. Что делать с таймаутами и ретраями? Что должен делать сервис 1 пока нет ответа, тупо заблокировать клиента и ждать? Если сервис 2 затупит, сервис 1 ответит клиенту ошибкой таймаута, то как сказать сервису 2 что ответ уже и не нужен?
А дальше слушаешь что он говорит, если нормально объясняет почему так, то обсуждаешь как делать. Если прого говорит заткнуться и делать - лучше поискать новое место работы.
Есть обычный многомодульный мавен проект вида zalupa1 --src --pom.xml zalupa2 --src pom.xml zalupa3 --src --pom.xml pom.xml Модули используют друг друга. Каждый модуль хочется развернуть в отдельном контейнере. Как такое правильно делать? Не придумал ничего лучше, чем скопипастить 3 раза Dockerfile типа 1 фаза: COPY <zalupa1> COPY <zalupa2> COPY <zalupa3> COPY pom.xml собираем весь проект нахуй 2 фаза копируем из прошлой фазы нужный артефакт и запускаем Но звучит как пиздец же, пусть докер там что-то и кеширует.
>>2432894 >>Модули используют друг друга. Каждый модуль хочется развернуть в отдельном контейнере. вынеси общий код в отдельные модули zalupa1-api zalupa2-api и тп Там не нужен мейн класс, это просто либа - код + пом,хмл версию лучше оставь что-нибудь-снапшот, чтоб каждый раз при сборке либа заного собиралась (иначе охуеешь от версионирования либ)
Если там вызовы друг друга - сделай общение либо по ресту, либо по кафке как в стороннюю систему, чтоб они могли собираться независимо друг от друга.
>>Но звучит как пиздец же ты сделал распределенный монолит в худшем его виде
> Как сервису 1 сказать сервису 2, что мне нужны от тебя данные
Это весьма хреновая постановка вопроса, она сама по себе ведет к пиздецу, который люди часто называют "распределенным монолитом". Обычно, когда бьют систему на микросервисы, стремятся делать это так, чтобы один сервис о другом ничего не знал, и как частный, не коммуницировал с ним напрямую. Вместо этого Сервис 2 просто шлет сообщения о том, что в нем происходит (не парясь о том, слушает ли их кто нить или нет). А сервис 1 просто слушает мессаги (не парясь о том, придет ли туда по факту ченить или нет).
>>2433100 Читал твиттер (или что-то другое) пидораса чулочника о правильной поддержке эмодзи-краба в сурсах раста или что-то такое. Так что раст для пидорасов.
>смешивание шаблонов и логики и налет функциональщины отвращает
Напрасно. Хз че там у реакта с экосистемой, но идеология чистого реакта весьма хороша. Джавовый тырпарайз был бы в разы менее кровавый, если б этот ебаный стиль с классами-сервисами и автоварями сдох нахуй вслед с EJBями. И ангуляру мимикрирование под этот стиль не очень идет на пользу.
Почему везде пишут, что ограничение <? super T> - это любой класс, являющийся супер-классом T, а по факту это любой тип, являющий наследником T? Какая-то путаница.
>>2433266 Я не учил, на собесах не спрашивали, просто знал что такое дженерики и для чего нужны. Когда появилась таска, где они понадобились - просто погуглил немного и все сделал.
>>2433680 И за каким хуем ты это высрал? У тебя тут ни одной сортировки нет, да и не ясно, ты структуры просто смотрел или писал сам по несколько раз без помощи лмстинга. Хоть удаление из красно-черного осилишь без флагов из делетед?
Ребята, а как мне адекватно передать вот такой json: { //тут какие-то поля "объект класса В": { //тут какие-то поля "объект класса С" //тут какие-то поля } } и нормально его разложить по классам А, В, С и потом передать их в бд. Вот одинарный json получается, а комплексный не идёт. Буду признателен.
Я для себя идеологию реакта увидел так: компоненты в реакте объединяются по принципу "вместе должно быть то, что переиспользуется как одно целое" (ключевое слово --- "переиспользуется"). В отличие от тырпрайза на бинах, где в бин объединены просто рандомные процедуры по типу "если эта логика работает с юзером, значит она должна быть частью UserService".
У фронтендеров эта очевидная идея лежала на поверхности --- всегда была реальная потребность реюзать однажды спроектированную, отстилизованную кнопку или текстовое поле в разных местах интерфейса. Долгое время не было только фреймворка под нее. В бэке эта идея в разы менее очевидная, потому что вместо интерфейса у бэкендеров обычно --- АПИ, где переиспользовать нечего. Наверное поэтому бэк и подряз в этом в сервисно-биновом непотребстве. Но и на бэке такой майндсет был бы тоже в разы более эффективен, потому что в конечном итоге именно тот код, который переиспользуется вместе, и является наиболее сплоченным (cohesive).
Давно я к вам не заходил, но сейчас принёс ГИГАБАЗУ. Хешмапа - это бог оптимизации. С помощью нее можно оптимизировать абсолютно ВСЁ что лагает и сделать это молниеносным. Иногда придётся платить повышенной тратой оперативной памяти.
>>2432972 32 минимум! Ты же, когда кодишь, не только в идее сидишь. Для максимальной скорости кодинга надо иметь возможность открывать очень большое число окон и программ.
>>2433907 >>по принципу "вместе должно быть то, что переиспользуется как одно целое" >>переиспользуется как одно целое >>В отличие от тырпрайза на бинах Я нихуя не понял. Где и как они хранятся и чем это лучше внедрения зависимостей из контекста?
Что мешает точно также создать эту кнопку, поместить "ссылку" на этот кусок кода в контекст, а потом вставлять в нужных местах указав эту самую "ссылку" на кнопку из контекста вместо написания с нуля?
>>вместо интерфейса у бэкендеров обычно --- АПИ вместо интерфейса у бэкендеров бизнес логика >>где переиспользовать нечего ООП построено на переиспользовании кода
>>тот код, который переиспользуется вместе Что значит "вместе"? Чем это отличается от переиспользования кода "не вместе" ?
>>2433997 32 ты загнул конечно, мне 16 хватает для открытия 3 петов в идее и 3 окон в гугле с овер 25 вкладок. 8 было мало, 4 как пишет анон, имхо вообще пиздец. А на галере можно попросить норм ноут подогнать, знакомым макбуки выдавали
У кого есть статический айпи, попробуйте скачать вот это: https://pastebin.com/E4MEhZFy Может получится. Мне мега лень ради пары торрентов регать российский впс (свой зарубежный наверное не смогу оплатить) или ебать тп провайдера, чтобы дали статик. там депрекейтед курсы жирного по спринг кор
>>2434097 Добавь сюда ещё корпоративный месседжер на электроне, 5-7 контейнеров докера, корпоративные зонты. Может второй браузер. Плюс в идее пожирание оперативы зависит от числа плагинов и того, как ты ты их используешь. Я вот из под винды работаю. Тут всл + антивирусы + доп зонды + сама винда. Только это все вместе гига на 3 больше жрет
>>2434318 Я что должен отслеживать все политики всех говносайтов? magnet:?xt=urn:btih:5f26f9729ea096f945e57d5a59975adb8707f72e&dn=%5budemy%5d%20Spring%20Core%20-%20Learn%20Spring%20Framework%204%20and%20Spring%20Boot%20%5bFreeOnlineMovies.Co%5d&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a80&tr=udp%3a%2f%2ftracker.leechers-paradise.org%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.coppersurfer.tk%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.opentrackr.org%3a1337%2fannounce&tr=udp%3a%2f%2ftracker.zer0day.to%3a1337%2fannounce&tr=udp%3a%2f%2feddie4.nl%3a6969%2fannounce&tr=http%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp%3a%2f%2fopentracker.i2p.rocks%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.internetwarriors.net%3a1337%2fannounce&tr=udp%3a%2f%2fcoppersurfer.tk%3a6969%2fannounce magnet:?xt=urn:btih:852564fac352bc5fc2d8a7a96de067c01c2bc4a3&dn=Spring%20Core%20-%20Learn%20Spring%20Framework%204%20and%20Spring%20Boot&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=http%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp%3a%2f%2fopen.demonii.com%3a1337%2fannounce&tr=udp%3a%2f%2ftracker.internetwarriors.net%3a1337%2fannounce&tr=udp%3a%2f%2fopentracker.i2p.rocks%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.leechers-paradise.org%3a6969%2fannounce&tr=udp%3a%2f%2fcoppersurfer.tk%3a6969%2fannounce&tr=udp%3a%2f%2ftracker.zer0day.to%3a1337%2fannounce&tr=udp%3a%2f%2ftracker.xelion.fr%3a6969%2fannounce&tr=udp%3a%2f%2f9.rarbg.com%3a2710%2fannounce&tr=udp%3a%2f%2f11.rarbg.com%2fannounce&tr=udp%3a%2f%2f11.rarbg.com%3a80%2fannounce&tr=udp%3a%2f%2f11.rarbg.me%2fannounce&tr=http%3a%2f%2ftracker.aletorrenty.pl%3a2710%2fannounce&tr=http%3a%2f%2ftracker.pubt.net%3a2710%2fannounce&tr=udp%3a%2f%2fglotorrents.pw%3a6969&tr=udp%3a%2f%2fglotorrents.pw%3a6969%2fannounce&tr=udp%3a%2f%2f9.rarbg.to%3a2710%2fannounce&tr=udp%3a%2f%2f9.rarbg.me%3a2710%2fannounce&tr=udp%3a%2f%2ftracker.openbittorrent.com%3a80&tr=udp%3a%2f%2ftracker.opentrackr.org%3a1337%2fannounce
>> Клон жаба треда с прикрученной регистрацией норм для проекта в портфолио? Так че норм или залупа? Или эта хуйня слишком много времени займет? В теории там все просто должно быть
>>2433296 >>2433063 Короче помимо этого раскукожил чайлд модули, убрав из них секцию <parent>. Стало намного пизже. Американец на стековерфлоу сказал ты что долбаеб, контейнеризируют не отдельные модули, а ПРИЛОЖЕНИЯ.
Только теперь всякие ломбоки, junit-ы, и миллион других повторяющихся зависимостей приходится копировать N раз. Даже хуй знает как это пофиксить.
И зачем нужен родительский пом, в котором прописаны <modules> <module>zalupa1</module> <module>zalupa2</module> <module>zalupa3</module> </module> Если в самих модулях нет ссылки на родителя?
>>2426003 (OP) Подключаю базу данных, если использую Environment и propeties(вариант этого подключения в комментах) то получаю: Failed to obtain JDBC Connection; nested exception is org.postgresql.util.PSQLException: FATAL: password authentication failed for user
Если подключаюсь просто без propetries то все работает. В чем может быть дело? В гугле нашел только инфу по изменению pg_hba.conf, но не помогает
>>2435327 >>контейнеризируют не отдельные модули, а ПРИЛОЖЕНИЯ. Ты уж определись что тебе надо монолит или микросервисы. >>зачем нужен родительский пом, в котором прописаны >>самих модулях нет ссылки на родителя? Надо было спросить того чела что тебе посоветовал все в один контейнер засунуть
>>2435710 Бизнес-логика действительно часто пишется в стиле, близком к процедурному. Само по себе это не плохо, и ничем не мешает переиспользованию кода. И это необязательно означает, что у тебя будет один условный UserService сервис как сборник не связанных между собой процедур. В реалистичном нетривиальном случае будет какой-то сложный бизнес-процесс, в котором задействован и User, и много чего еще, и бин-сервис может быть "посвящен" этому процессу, а не отдельной сущности.
>>2435789 Потому что bean-компонент — это объект, который создается, собирается и управляется контейнером Spring IoC. Тут все понятно. Теперь надо просто понять, чем объекты отличаются от процедур. Так что тот анон сделал очень правильное уточнение.
>>2435821 > Потому что bean-компонент — это объект, который создается, собирается и управляется контейнером Spring IoC. Это ответ из книжки. А в действительности в контейнер суют процедурные модули, и не важно, что они реализованы как объекты классов.
>>2435829 Это ответ из доки спринга. Для меня, как спринг-конфигуратора дока - это источник истины. Если у тебя есть опровержение - аргументируй, почему бины это не объекты, а процедурные модули.
Да вот забавно все с бинами и контейнерами на самом деле.
С одной стороны, как физически, так и с точки зрения IoC контейнера бины --- это объекты (если понимать под объектами инстансы классов, и не упарываться по чистоте ООП). Но IoC, помимо внедрения зависимостей, делает обычно еще одну важную вещь. Управляет скоупом и жизненным циклом бинов. Какие то бины живут в скоупе реквеста, какие то --- привязаны к сессии, какие то воообще --- прототипы либо синглтоны.
И вот что забавно - кучу тырпрайза на джаве пересмотрел, и обычно типичным сервисным бинам вообще скоуп и жизненный цикл нерелевантен. Семантически --- вообще насрать, создаст контейнер один юзер сервис, или по одному на, скажем, запрос, потому что обычно такие сервисы дизайнятся stateless. Если подумать об этом побольше, выходит что scope и lifecycle --- вообще понятия, применимые лишь к стейту. Это для стейта важно определить, кто его видит и сколько он живет, для стейтлесс вещей оно не имеет никакого смысла.
Учитывая вышесказанное, решительно непонятно, нахрена засовывать стейтлесс бины (коими является подавляющее большинство типичных спринговых сервисов на джаве) под контейнер. Бенефитов от этого действа --- копейки (сэкономили чуток на вызове конструктора и аллокации обьекта, вау). С точки зрения поддерживаемости --- одни недостатки, так как полноценно переиспользовать свою биновую бизнес логику ты можешь только пока она мэнеджится контейнером. Более того, переиспользовать отдельные процедуры из бина невозможно отдельно от бина, из-за чего бины и называют сборником процедур, а автовари --- аналогом инклюда в сях.
>>2435829 Внедрение бинов - это замена синтаксиса new HyinaService(param1, param2, param100500) или даже HyinaServiceАbstractFabriс.createHyinaServiceFabric().createService()
То что ты в сам бин засунешь - уже твои проблемы. То что все пишут трехслойную архитектуру с сервисами не имеет отношения к самим бинам как таковым.
>>2435859 >>сэкономили чуток на вызове конструктора и аллокации обьекта >>чуток Ты охуешь каждый раз вручную дерево зависимостей строить и переписывать все конструкторы при небольших изменениях в логике или архитектуре >>С точки зрения поддерживаемости --- одни недостатки Очень сильное упрощение архитектуры еще и вкат упростило, там где раньше нужны были сеньки, сейчас джуны под контролем мидлов справляются. А это снижает издержки для бизнеса.
Если ты про память и скорость запуска - то спринг не сложно заоптимизировать до уровня чистой жабы, только это редко когда реально нужно >>только пока она мэнеджится контейнером То есть всегда >>аналогом инклюда в сях. Аналог иклюда - это импорт статичных методов. >>сборником процедур между набором обычных и статичных методов все же есть разница >>Хз зачем это все было надо, хуйня какая то имхо. Для этого надо вернуться на 20лет назад, пописать много интерпрайщного кода на чистой жабе, потом переписать это 10 раз под изменяющиеся требования, тогда и станет понятно зачем спринг нужен. Спринг это кстати не только про контейнер, он еще и интегрирует дохуя всяких либ, избавляя от необходимости проверять их совместимость и работоспособность.
>>2435882 >Ты охуешь каждый раз вручную дерево зависимостей строить и переписывать все конструкторы при небольших изменениях в логике или архитектуре
Разумеется охуею, потому что количество транзитивных зависимостей сервисного бина (и как результат --- автоварей) может легко достигать овердохуя. А все из-за того, что типичный бин структурно --- именно что пучок процедур, хоть и оформленный как класс. Процедур, которые могли бы быть и переиспользоваться отдельно друг от друга, но вместо этого находятся в одном классе, раздувая тем самым его количество зависимостей. По той же причине я и говорю, что реюзать бины без контейнера --- практически невозможно.
Если бин побить на более гранулярные кусочки, у каждого из них количество зависимостей было бы ограничено лишь его непосредственными потребностями. И аллоцировать их вручную будет не так уж и сложно. Проверял лично на проде.
Все остальное --- стереотипы спрингокультистов, неинтересно. Кроме разве что:
>Спринг это кстати не только про контейнер, он еще и интегрирует дохуя всяких либ, избавляя от необходимости проверять их совместимость и работоспособность.
Это да, это действительно оправдывает существование спринга. Но не сервисов.
>>2435923 >бин побить на более гранулярные кусочки, у каждого из них количество зависимостей было бы ограничено лишь его непосредственными потребностями. И аллоцировать их вручную будет не так уж и сложно. Проверял лично на проде. звучит прохладно. То есть 100 твоих бинов + 500 транзитивных превратится в 1000 твоих модулей, которые надо руками создавать создавать. Зависимостей будет меньше, но так как модули будут меньше, то транзитивных модулей будет больше. Скажем 1500. Посмотрю я как ты это руками разрулишь. Да и пиздеж это, что скоуп с состоянием никогда не используется. Сам видел и ревест и сессион скоупы. Да, их 1%, но возможность их использовать нужна.
Нормально разруливается. Не понимаю о каких тысячах ты говоришь. За счет более активного реюза кода этого кода впринципе меньше, чем в бинах. Более того, работает как со спрингом, так и без. Юнит-тестится без spring test и развертывания контекста. Охуенно вообще.
>Да и пиздеж это, что скоуп с состоянием никогда не используется. Сам видел и ревест и сессион скоупы. Да, их 1%, но возможность их использовать нужна.
А я разве говорил что они не используются? Я говорил ровно то же, что и ты --- что компонент, для которых действительно оправдан менеджмент скоупа и жизненного цикла, на практике несравнимо меньше чем компонент вообще. Тем не менее почему то люди кладут 99% бизнес кода под спринговые бины.
Ты видимо почему то решил, что я топлю против использования спринга вообще? Нет. Я критикую пучки процедур именуемые сервисами, и идею отдать на аутсорц контейнеру менеджмент всех зависимостей между компонентами. Не спринг. Спринг в моем мировоззрении --- отличный интеграционный тул, позволяющий за считанные минуты начертать порты и адаптеры к внешним системам. Но для бизнес логики он стремный, тут уж сорян.
>>2435989 То что легко реюзается лежит в статических переменных утил-классов. Хотелось бы увидеть код с бизнес-логикой вне конетекста и как все это соединяется с внешними билиотекой, работающими через контекст и всякими контроллерами и подключениями к базе
Ребят, я заебался.. Ссаный чойсбокс сильнее меня... Это javaFX. Есть лист с объектами класса Account, по ходу работы программы у этих объектов меняется текстовое поле. На этот лист я вешаю Observable засовываю в ChoiceBox "moneySendFromChBox", и по идее строчки в ChoiceBox должны динамически меняться в момент когда они меняются объектах листа. Но вместо этого строки начинают добавляться к предыдущим значениям поля, чому так?
Привет, а чем обычно документы эластиксеарча валидируют при маппинге/создание? Прочитал что нужно валидировать в контроллере (в моем случае). Это делать руками? if a.user != null и т.д.. Или есть нормальный способ?
Есть классы AbstractList<E> (имплементирует List<E>) и ArrayList<E> (наследует AbstractList<E> и тоже имплементирует List<E>). Зачем для ArrayList<E> писать implements List<E>, если он и так уже наследует это от родителя и это не добавляет ничего нового?
у меня знакомый - типичный скуф, дрочил полгода джава кор и sql и сейчас с этой хуйней пытается стажировку найти уже пару месяцев, до этого его устраивали друзьяшки на разные около и it профессии) когда я ему говорю, что сейчас с такими знаниями никуда не возьмут - отнекивается, говорит, у тебя завышенные требования) раздражает прямо этот пидорас, надеюсь проебет побольше времени и ничего не добьется. с
>>2437397 бэкграунд - по блату брали на проект джавистом, хотя на тот момент только базовый синтаксис знал. (с этим еще связана рофельная история, он мне рассказывал, что пройти собес вообще легко, найти работу расплюнуть, а затем сам же рассказал, как ему дружбан всё тех. собеседование слил заранее и ему нужно было только его выучить).
проект закрылся, погнали оттуда его дружка и его вместе с ним. (насколько знаю у него даже месяца опыта оттуда не накапало). еще его звали на пару проектов до 24 февраля. раньше работал небольшим начальником в кафешке. лет ему под тридцатник.
сейчас его дружбан и еще пару знакомых, по-сути все его знакомоства в сфере, уехали в гейропу. он остался один и хочет САМ найти работу. с такими-то требованиями лол.
>>2437533 JDBC, Hibernate, Spring( Что ты понимаешь под спринг кор? Обычно спринг кор - бины, DI. IOC - и да, этого недостаточно). Spring MVC, Spring Data, Spring security, Spring Boot, Spring Validation, основы работы с Git и Maven/Gradle, основы тестирования.
Вот что смешно. Несколькими сообщениями выше был аргумент в копилку достоинств спринга, что, мол, со спрингом архитектура упростилась настолько, что там где раньше нужны были синьоры, теперь и джуна хватит. О чем, впрочем, сказать стесняются, так это о том, что планка входа со всеми этими спрингами, хибернейтами и микросервисами для джунов задралась настолько, что сами джуны теперь либо вкатиться не могут, охуевая от того сколько всего надо учить, либо стОят по деньгам как те же синьоры лет 10 назад.
>>2437551 Я такой стек обычно на мидлов/сеньеров вижу, хотя там еще плюсом идут всякие куберы, докеры и тп. Жесткие нынче требования, надеюсь хоть платят ждунам более-менее
>>2437559 ну просто уровень знаний в этих технологиях для ждуна ниже, чем для мидла. ну и ждун на то и ждун, что у него нету опыта промышленной разработки. а мидл имеет, значит без нагоняя и присмотра может выполнить задачу.
>>2435989 Много видел сервисов без единого инжекта? Я вот ни одного. Так что непонятно, про какой именно стейтлесс ты тут втираешь. Полиморфизм. Буквально в этом месяце ковырял проект, где сам сервис инжектится как интерфейс с несколькими реализациями. Как интересно будет поживать твой код, когда вместо использования бина без задней мысли тебе придется ручками в контроллере выбирать из твоего пучка процедур разные реализации с разными зависимостями. А про переиспользование двачую оратора выше, действительно стейтлесс код можно уносить в утил классы, оставив в бинах то, что не может жить без контекста этих бинов.
>>2437557 Чел, я по приколу, когда вкатывался писал круды на голом томкате, голом jdbc и без di. Пара связанных сущностей у меня заняли две недели. Потом я переписал это на спринг мвц с di и jdbctemplate. Количество кода упало в разы. И количество ошибок тоже. И это я еще не подрубал сваггер, логирование, внешние сервисы, секьюрити, валидацию, транзакции, адвайсы с эксепшонхенлерами и врапперами, очереди сообщений, интеграционные тесты, нереляционную базу, раннеры, шедулеры, кэшы. Со спрингом я все это на каком-никаком уровне освоил от дня до пары недель. Без спринговых оболочек у меня ушло бы в разы больше времени и в разы больше кода, где я бы совершил в разы больше ошибок. Платят не за спринг, а за функционал. Без спринга архетиктура даже небольшого тырпрайзного сервиса была бы охуительно сложной из-за кучи вовсе непростого бойлерплейта.
Слушай, ну я рад за тебя конечно, ты молодец, мотивированный чад и все такое. Разумеется понятно что со спрингом проще штуки делать чем без спринга, я не об этом. Просто щас стек настолько раздут, что на джунов же без слез не взглянешь. Даже от этого треда несет отчаянием людей в попытке вкатиться в джаву: "Что минимум надо джуну...", "Как вкатиться на стажировку...", "спринга хватит, или хибернет еще надо?...". И так везде, не только на двощах. Прям смотришь на них --- так и хочется их всех обнять, сказать им ченить доброе и поменторить.
Блин, я в 2007ом году с околонулевым знанием с++, без опыта, портфолио, знакомств и тремя курсами универа из пяти уже вкатился на оплачиваемую стажировку на парт-тайм, откуда через 3 месяца попал в джуны, где уже спокойно, в своем темпе изучал всякие штуки, попутно получая стаж и опыт коммерческой разработки. И это было тогда вроде обычное дело. Щас же порой челы, добравшиеся до собеса на джуна --- уже выгораны внулину.
Все таки учить штуки проще морально, когда вопрос с работой закрыт, нет?
>>2437738 Ну так расскажи что ты там мог в 2007 году написать с поверхностными знаниями плюсов. У нас например для джуна уже через 2-6 недель онбординга нужно писать мр-ы, которые потом попадут в прод. Для стажера через 2-3 месяца. И для этого нужно уже как минимум знать гит, спринг кор и веб, sql и junit. За недели онбординга придрачиваешься к орм или квери билдеру, докеру, тестам и прочим штукам.
>>2437816 Скрипты на баше лабал для одной телеком подсистемы на солярке (баш учится за 2 дня). Те же МРы в прод (в те времена это был даже не гит, а clearcase, который с улицы все равно никто не знал и знать не мог, ибо проприетарная хуйня). Параллельно спокойно себе подтягивал с++. Затем с++, параллельно чекая, че там в джаве (в те времена это был еще Java EE). Шаг за шагом, проект за проектом, спокойный себе чиловый прогресс.
>>2437786 >Не сильно проще, надо еще таски с крудами решать. Так только кажется. На самом деле учиться сильно проще когда ты не один, а в кругу опытных челов, да еще когда к тебе ментор приставлен, и всегда есть кому тупые вопросы задать. По крайней мере так было во времена моего стажерства, щас вообще не удивлюсь если вкатуна еще и хуесосит заебанный майлстоунами коллектив (сам такое осуждаю).
>>2437884 >тебе просто печет что ты все это говно учил и хуи сосешь пока что только ты мой хуй сосешь
>а чел просто берет и вкатывается просто берет и вкатывается куда? в бесконечный цикл собеседований? ты такой же что ли экземпляр? или хули у тебя так сгорело
>>2426003 (OP) Анон, как выгрузить строки/строку с БД не по айдишнику, а по строковому значению? Я пробовал
List<Combination> list = session.createSQLQuery("select id, construction from Combinations where construction like :combination") .addEntity(Combination.class).setParameter("combination", combination).list();
List<Combination> list = session.createCriteria(Combination.class) .add(Restrictions.like("combination", combination)).list();
но оба варианта нихуя не возвращают. В таблице данные есть.
Посоветуйте репозиторий, где есть круды посложнее стандартных с одной таблицей, чтобы несколько связанных таблиц.
Работа для вкатунов всё? Вчера смотрел вакансии, только публикуют через час уже по 200 откликов. На тех которые висят неделю по тыщу откликов. Как без резюме вкатится то?
>>2439205 Ну сделай резюме далбич Из этой тысячи - 800 таксисты и бармены с джавараша, ещё 150 - ебанашки, которые думают, что жаба и жабаскрипт одно и то же. Про спринг знает 50 человек.
>>2439463 Универ по сравнению с джаварашем тоже --- ничто. Там может и обучают комплюхтерных саентистов, но они в индустрии нахуй не нужны. Нужны макаки на определенный стек, чтоб писать код уже сейчас, а не через пару лет стажерства.
>>2439573 Ты проходил жавараш? Я там брал ~30 уровень. Большая часть задач это бесполезная дрочь за твои деньги, после которй ты по сути ничего не можешь и половину забываешь. А на поледующей стажировке отваливается ~90% людей, потому что на жавараше их учили выводить в консольку, а теперь заставляют спринг конфигурацию. Лучше скачать и полистать Хорстманна и статьи в интернете.
>>2439598 >Хорстманна Книга ужасная. Сухое изложение без примеров. Корявое объяснение. С одной стороны он пишет для знающих С++, но объясняет основы ООП, а с другой стороны не объясняет толком особенностей джавы, которых нет в С++. В итоге и для новичков книга сложная и для профи на других языках она не даёт ничего.
>>2439603 Да, я и есть тот даун который повёлся на рассказы что буду получать соточку через 3 месяца, ведь достаточно пройти 20 уровней на жавараше и решить 200 примеров.
>>2439604 Тогда Head First Java. Она совсем для нулевых, после некоторого опыта можно уже приступать к Хорстманну скипая некоторые места.
>>2439303 Я около 50 откликов сделал на джунов, мидлов и сеньоров в разные галеры, стартапы и всю возможную хуету. Ответили только четверть стандартной копипастой. При том я не хуй, у меня активный гитхаб с разными моими тулзами на разных языках, со звездочками. Коммиты в попенсорс. У большинства такого даже нет. Вот что им нахуй еще надо от меня?
>>2439631 Надо чтобы твой высер в резюме подходил под их вакансию, дебс. Твоё резюме не доходит до собеса потому что его отсеивает HR по кейвордам, у неё spring, у тебя "знания spring framework", итд по списку. Смотришь вакансию - подстраиваешься чтобы понравиться HR, дальше уже по ситуации.
>>2439635 Раз 10 откликался, на один получил месседж на почту "решите задачку", я решил. Пригласили на собес, сказали "как бы ты улучшил свой вариант?", я сказал "ну хуё-моё туда-сюда" и меня взяли на галеру.
>>2439636 > у неё spring, у тебя "знания spring framework" Вот специально для хрюш выкладывал 2 дефолтные хуйни по спрингу, чтобы они увидели знакомые слова. Назвал большими буквами СПРИНГ+ХУЙНЯ_НЕЙМ. Не уверен что они вообще понимают на что в этом гитхабе смотреть надо.
> Смотришь вакансию - подстраиваешься чтобы понравиться HR Даже хх.ру говорит надо рассылать минимум 10 откликов. А под все невозможно подстроится физически. Но вот с одной заявкой ты можешь сидеть месяцами в неведении, даже если тупо скопипастишь параграф про требования, пока она разберет 1000 кандидатов и проигнорит тебя в итоге. Я хз как можно вкатится не по знакомству и если ты уже не студентота.
>>2439641 Ну вот студентотой меня примерно так и взяли. Сменил статус на активный поиск, на следующий день позвонили, скинули тестовое и через неделю я уже был там. Без всякой хуйни и унижений. Но по глупости и джуновской нищете я выкатывался в другую сферу. Обратно теперь не пускают пидарасы.
На связи вкатунщик студент 2го курса cs Не знаю, что выбрать в перспективу - Java или C#. Выбираю только из этого, остальное на бэк не интересует. Шарп по вакансиям сейчас выглядит слабее, однако ощущение, что это пока, и дальше он будет только набирать обороты,а от жабы все желчью плются, но зато там работы дохера. я не из рашки, поэтому ситуация с уходом МС меня мало волнует Подскажите, ставить всё на красное изучения жабы? С будущей возможностью вкатиться в европу, там сейчас вроде тоже жаба популярнее, не считая швеции какой-нибудь
>>2439725 > ставить всё Не бывает такого. Оба языка в ближайшие лет 10 не умрут (ни один популярный язык так быстро не умирает), и работы всегда хватать будет, даже если легаси. А потом всегда успеешь перекатиться, если что-то начнёт умирать. С эстетической точки зрения оба языка говно, и вкатываться только ради работы и деняк.
>>2439598 >>Ты проходил жавараш? Я не осилил, когда меня в самом начале попросили 3 раза подряд написать хэдлуворлд без возможности скипнуть - я бомбанул и пошел на курсеру. Хотя тимлид у меня учился на жавараше, лол (но тогда он вроде был бесплатным).
Но я имел ввиду не конкретный украинский сайт, а вообще все эти инфоцыганские курсы, юдеми и прочие ютюбы которые либо бесплатны либо есть на торрентах.
>>2439740 > Жалко денег пусть нанимают вкатунов недопрогромиздов > Жалко время пусть оплачивают настоящим ПРОГРАММИСТАМ их хотелки Между этими точками бесконечное число компромиссов.
>>2439776 Мне похуй, я не знаю синтаксис вашей рыготни, но видел пару раз и представляю что он из себя представляет. Не зря индусы писали на нём, ведь столько кода можно нахуярить на пустом месте.
>>2439802 Синтаксис обращения к свойству такой же как к полю класса. И когда ты думаешь что обратился к полю, по факту происходит вызов метода, в котором могут происходить нежелательные действия. Ладно лист каунт оптимизирован для такой хуйни, но каждый десятый еблан будет говнокодить что нибудь типа person.Parent - где в теле свойства будет FindParentByChild(id) или подобная хуйня о которой не узнаешь не заглянув в сорцы. Встречал не раз.
>>2439730 жаба все таки приятнее лучшие среды хотсвоп из коробки документация сборка вм еще много чего только сам язык говно в шарпе же убогая документация вижуал студио зоопарк версий короче обычный кал от микрософта нет ничего что в шарпе бы нравилось больше чем в жабе кроме модификации сборок
Хочу написать свой аналог викимапии или народной карты яндекса. С чего начать? Немного умею в жабу + спринг + хибернейт, а ведь нужно еще что-то для фронта взять? Хотя и десктоп приложение на первых порах наверное сойдет, просто интересно попробовать написать свой GIS с нуля.
>>2439725 Разницы особой нет, можешь хоть говноланг учить, один хуй за время работы сменишь несколько технологий, плюс наверняка на работе помимо жабы периодически придется пистаь на js или питухоне или том же го, поэтому бери любой и не парься.
>>2439913 В общем с чего начать хотя бы? Меня только самый примитивный функционал интересует, качество графики пусть хоть как в начале нулевых - похуй абсолютно. Чекал исходники всяких гис либ для джавы - там пиздец сколько всего разного, глаза разбегаются. Я хочу сам с нуля все написать
>>2439205 Бля это пиздец, я сам уже год вкатываюсь, остались только секурити и сиай сиди, если это правда, то год впустую получается. Придется идти по специальности на завод за 30к деревянных
>>2440042 Вот и наслаждался бы сишарпиком в треде про шарп. Вместо этого ты целенаправленно спускаешься в канализацию и жалуешься, что в ней моча и говно.
>>2440047 Я не хочу стажером, хочу ждуном, тем более на стажеров в мск сейчас около 20 вакансий, против 100 у ждунов, шансов найти что-то вменяемое еще меньше
>>2440088 Ждун это тот, у кого хотя бы год опыта работы есть. Но вообще тыкайся просто во все места. В некоторых конторах стажеров называют джунами, а где-то и вовсе не делают различий.
>>2440896 >Условный рест с бд покатит Покатит, но эти типовые круды у большинства вкатунов настолько стандартные и одинаковые, что даже скучно их открывать. Сделай, например, телеграм-бота, который транслирует треды с двачей, хоть выделишься чем-то
>>2440932 > даже скучно их открывать Вот и давай сам весёлые тестовые задания. Вкатыши не будут тебя развлекать интересными проектами, они работать пришли, потому что если бы у них была хорошая фантазия, они сами были бы кабанами.
>>2440896 Добавь туда обращение к публичному рест сервису в интернете по рест-темплейту, валидацию входящих дто для твоей апишки, базу засунь в докер, добавь сваггер. Схему базы прикручивай через flyway/liquibase. Сделай тесты на рест-апишку mock-mvc-tests. Это скорее всего то, что тебе придется делать джуном на работе. Думаю идеальным для пета будут 3-4 таблички. Ну и одну из менее обязательных для новичка штук. Авторизацию, nosql базу, транзакции, кеши, шедулеры, работа с файлами, что больше понравится. я например скомпоновал требования из нескольких тестовых, которые нашел в интернете или мне скидывали и еще немножко усложнил. Вот мне это присылали. И еще был один от райфа.
>>2441025 > базу засунь в докер, добавь сваггер. Схему базы прикручивай через flyway/liquibase. А как это всё тестируется во время написания всего этого говна? Например с докером. Вот как я должен запускать код, чтобы проверить что он работает? Вот обычные юнит тесты для реста я понимаю, а когда такую громоздкую хуйню прикручивают хз что делать.
>>2441126 Докер - это просто среда, в которой будет работать твоё приложение, при этом само приложение ничего про докер не знает и может работать без него или в каком-нибудь другом контейнере. Тесты, конечно же, пишутся как обычно, без докера. Для тестов вместо реальной базы данных используется ин-мемори H2/HSQL, таблицы для них создаются не через flyway/liquibase, а обычными SQL-скриптами, которые кладутся в ресурсы каждый раз при запуске тестов выполняются заново, например, через EmbeddedDatabaseBuilder.
>>2441151 Через автотесты, которые будут поднимать своими скриптами твоё приложение и проверять его работоспособность какими-нибудь смоук-тестами. Никакими жюнитами там не отделаешься, надо создавать отдельный проект, в котором намешаны девопс, прогон тест-кейсов и генерация отчётов. В настоящем проекте этим должны заниматься автоматизаторы ручного тестирования, а не ты.
>>2441025 О, я как раз это тестовое год назад делал. >>2441151 >>как протестировать что flyway/liquibaseсконфигурированны правильно? Просто запускаешь приложение и смотришь в базу - накатились твои изменения или нет. Хотя у тебя скорее всего приложение даже не поднимется, если с миграциями что то не так (чек сумма не совпадает или ты там хуйню написал) >>и докер Собираешь свое приложение в образ и поднимаешь контейнер. Если на http://localhost:8080/ - все ок, значит работает. Скорее всего тебе нужен будет docker-compose, если собираешься БД подключать. За пару дней в гугле разберешься. Но оставь это под конец, когда приложение уже будет готово.
>>2441145 А разве ставить ин мемори это не хуйня собачья? Вроде есть тема с докер тест контейнером, который будет поднимать ту же базу, которая у тебя основная. Хотя я сам это все пока не делал, только в теории знаю, мб хуйню написал
>>2441126 >>2441267 >>2441270 >>2441241 Ты используем тестконтейнеры и для постгреса и для nosql-баз. Это намного лучше, чем инмемори базы для тестов, потому что как минимум мы пользумся функционалом, которого нет в инмемори. Те же jonb. И в скриптах лиувидбейза пишутся sql-ddl скрипты на постгресовском диалекте. Это уж не говоря о разном внутреннем устройстве бд. На винде работает человек 5. Под всл никаких проблем. Просто на полтора гига оперативки больше тратится. Проблемы на винде у меня были с еmbedded-kafka из spring-kafka-test. Единственное тестконтейнеры это долго. Около минуты на поднятие. Если поднимаешь несколько раз или поднимаешь несколько - это боль.
>>2441557 Топчик. Обычно мододелы делают это нахаляву. А для заряженного 17-летнего игродебила и мечтателя вкатиться в гейдев это отличное начало. А если перегорит это уже шажок(джава-кор, гит и реляционка) для вката в тырпрайз-джаву.
>>2441708 Тоже заорал с этого, и с майскуля слегка прыснул поначалу, но потом понял, что видимо там данные логинов хранят как минимум, а то и всякие там состояния типа денежного счёта и тому подобного, так что там даже реляции могут быть нужны.
>>2441691 Тут согласен. Жаль я со своими 120к не потяну такую жёсткую просадку (я уже терпел просадку в 0.5 при свитче из эникейства, нот энимор). Буду готовиться к тырпрайзу, шоб хоть 90 дали.
начало собеса далбич спрашивает какой диапазон значений у short я говорю ты чё ебанат какой шорт??????! спроси про асид, спринг, кафку блять нет ррряяя мы вам перезвоним ррряяя пиздец дауны
>>2426003 (OP) Посоветуйте литературу/видео по hibernate чтобы очень подробно было разобрано построение связей между таблицами, организация их вывода, создание сущностей для этих таблиц и т.д.
Во всех встреченных видеоуроках разбирают пример с одной таблицей, говорят, что есть связи один ко многим/наоборот, а дальше сами ебаитсь. Я ебусь, и ловлю ошибки вроде "should be mapped with insert= false update= false" на поле, по которому должна идти связь.
>>2441922 Ну смотри. Шорт содержит в себе 2 байта = 16 бит. Один бит содержит 2^1 = 2 значения, значит для шорта 2^16 = 65536. Теперь делим на две равные части, одну часть отдаем под положительные числа, другую под отрицательные 65536/2 = 32768. И отдаём единицу из положительного числа под ноль, в итоге получаем ответ на твой вопрос: диапазон значений short от -32768 до 32767.
>>2441922 65536 Следовательно диапазон будет от минус половины от этого до плюс половины минус единица (минус единица потому что 0 тоже считается). Разве же это не база?
Я вот эти 65к в уме не подсчитаю. Ну я помню про 16 битов и то, что в жабе все знаковое. Помню 4 миллиарда - инт и 32 бита, помню, что байт 256, что лонг это 18 нулей десятичных и 64 бита. Реально бывают интервьюеры, кто хочет, чтобы все это как таблица умножения у третьеклассника-отличника от зубов отскакивала?
>>2442096 Прям точные значения меня не спрашивали. Когда заходила тема, то я обычно отвечал, либо 2^32, либо "примерно 2 миллиарда положительных, 2 миллиарда отрицательных значений"
>>2442096 Нет, если ты ответишь примерно, то отъебутся и начнут дальше спрашивать. Хотя в чьих-то зарубежных крестовиковских карточках для anki видел и все степени двойки до 16.
>>2442232 Что значит "знать"? Ты передаёшь данные подключения через переменные окружения, конфиг или как-то иначе, а микросервис их использует. Хардкодить их, конечно, зашквар.
>>2442297 Сколько ни читал про борьбу с null, всё сводится к возврату Optional там, где может возвращаться null, а про передачу аргументов в методы нихуя не пишут, пишут только, что передавать Optional нельзя, причём даже идея выделяет жёлтым и не говорит, что делать. Из возможных решений на всяких стаковерфлоу: - "мням, всё-таки передавайте в методы нулл, пук-среньк" - "хз, делайте параметры опшенл, но выглядит как говно, надо при вызове оборачивать всё в опшенл" - "пишите перегруженные методы и копипастьте логику"
Пиздец какой-то. Нуллабл-типы из котлина таким уж говном не выглядят на этом фоне, но раз сам котлин говно, в жабе должно быть нормальное идиоматичное решение.
>методы нихуя не пишут, пишут только, что передавать Optional нельзя, причём даже идея выделяет жёлтым и не говорит, что делать
Ох тыж блин, ну ежели люди в интернете пишут, да еще и идейка подсвечивает, то полюбасу нельзя, надо искать альтернативы.
Вот я ахуеваю, что с нулехейтеров, которые сами не знают зачастую, за что нули ненавидят, и какую проблему пытаются решать, что с остальных джавистов, для которых мнение евангелистов и идейки превыше здравого смысла.
>>2442391 > Ох тыж блин, ну ежели люди в интернете пишут, да еще и идейка подсвечивает, то полюбасу нельзя, надо искать альтернативы. Вот я и пытаюсь найти обоснование, почему так делать нельзя. Но все говорят, что нельзя, некоторые даже придумывают отговорки, почему нельзя, но никто не пишет, что конкретно надо делать вместо этого. Догмы меня не устраивают, поэтому сейчас я передаю null и помечаю параметр аннотацией @Nullable - высером для линтеров, который подсвечивается только в идее и не подсвечивается на кодревью. Возврат Optional хотя бы позволяет уменьшить количество NPE, как синтаксическая соль, напоминающая, что надо проверить, нашёл ли метод что-то.
>Вот я и пытаюсь найти обоснование, почему так делать нельзя
Обычно нудят что это мол оверхед, мол заворачивать-разворачивать опшеналы дороже чем чекнуть референс. Но блять когда у тебя энтерпрайз, где большую часть времени приложение пребывает в IO, как то чисто по Амдалу уже похуй на какие то крохи от опшенала. Тем более, в языке, где есть боксинг примитивов.
Единственный ИМХО трушный негативный эффект от опшеналов просматривается разве что в том факте, что опшенал - это херь с дженериком, а дженерики имеют свойства пропадать в рантайме. Из-за чего нельзя, например, перегрузить один метод разными типами опциональных аргументов. Но это ситуативная штука.
>>2442462 > Обычно нудят что это мол оверхед, мол заворачивать-разворачивать опшеналы дороже чем чекнуть референс Вот это страннее всего было слышать в отговорках, будто я не про жабу пришёл читать, а про кресты, и задачи у меня не запросить данные из базы и сконвертировать в жсон, а написать движок для машинного обучения. Но, конечно, надо знать меру. Где и нужно задумываться прежде всего об оптимизации, так это в запросах к БД, которые реально дорогие даже на фоне создания десятков объектов. Думаю о таком варианте: писать перегруженные методы, один общий приватный метод, который принимает опшенлы, и несколько публичных методов без соответствующих параметров, которые вызывают общий метод с обёрткой в Optional.empty()/Optional.of(), тогда и при вызове не придётся передавать null, надо просто вызвать подходящий метод без ненужных параметров.
Анон , помоги пожалуйста sql запрос написать ну или направь куда надо нахуй например . Смотри, есть таблица с столбцами pk , а , б. Я беру сущность с рк = 1 и мне нужно найти сущность такуюю что бы разница (а+б) выбранной сущности и (а + б) искомой сущности была минимальной.
>>2442699 Всегда была сборка ждк от оракла (платная для коммерческого использования, с поддержкой) и всегда была бесплатная опенждк (с тех пор, как у жабы открыли исходники). Так и сейчас.
>>2442985 Посмотри пост выше, вакансий нет, а желающих дохера. Иди учи что-то другое, поезд с жабой ушел, сейчас берут только челов, которые спринг вдоль и поперек знают
Как в Спринге без Хибернейта из строки сделать запрос? Например, метод принимает строку "SELECT zalupa FROM govno", и это должно вернуться в виде строки.
>>2443246 final NamedParameterJdbcTemplate jdbcTemplate = new NamedParameterJdbcTemplate(dataSource); final String zalupa = jdbcTemplate.queryForObject("SELECT zalupa FROM govno WHERE id = 1", new MapSqlParameterSource("id", 1), String.class);
Может хватит бухтеть и дестабилизировать ситуацию в жава мире?
Есть инфа от знающего человека, что в жаве скоро ожидаются реальные изменения. После того, как стабилизируют вальгаллу, уничтожат повсеместные блокировки (плохо влияют на перфоманс). Тогда везде и сформируют новую лтс. Зарплаты поднимут и будут держать, шарписты ничего не смогут сделать. Сейчас главное не бухтеть.
От нас требуется сидеть тихо. После того, как все сделают, все будет у нас хорошо. Всем устроят довольствие, как скалистам - каждый будет кататься в масле. Главное сейчас сидеть тихо и не суетиться. Никаких котлинов, никаких жетбрейнсов. Просто переждать и всё будет хорошо, там все схвачено.
Просто надо перетерпеть смуту и все наладится, братка. Не надо кричать и говорить, что жава - говно. Отсиди свой срок в интернете или просто расслабся, отдохни, накати пивка, бабу выеби в конце концов. Бесконечный сахар также является говном, говном более тщательно замаскированным, ну в сущности не дарующий хорошего кода.
Ребята, не кипишуйте! Сидите тихо, сейчас такой момент, нужно переждать! Просто завяжите узелком свои хотелки, не время предъявлять претензии ораклу. Поверьте, там все знают лучше вас, там люди, управляющие жавой уже давно, а не вчерашние школьники. Они понимают, что делают. Стираются женерики - значит должны стираться, начали внезапно пилить вальгаллу - значит так нужно. Сейчас очень напряженный момент, некоторые много ходовые операции в критически важной стадии! Враги и конкуренты все это уже поняли, и сейчас может рвануть в любом месте, в любой момент. Необходимо сплотиться и не реагировать на провокации! За вас все сделают те, кто сверху, не беспокойтесь! И вы не узнаете жаву, все зацветет! Главное - потерпеть!
>>2444716 >Подскажите пожалуйста, есть куча и стек в jvm, этот стек тоже самое что и класс Stack ? В любом языке есть, тупо потому что такова архитектура современных компьютеров. Где-то тебе все явно доступно - например С, где-то Java это есть, но с ограничениями - объекты в кучу, примитивы на стек.где-то это все скрыто, но по факту есть - Haskell.
>>2445737 Там тоже это все есть, и куча, и стек, и GC. Но в языке не специфицировано где и как все будет создаваться, все отдается на откуп компилятору а интерпретатор может делать совсем по другому. Поэтому на Haskell обычно про такие вещи не говорят.
- В продакшене ОРМ используют или запросы напрямую? а то в го например все без ОРМ пишут, мбы так везде - Видел некоторые вакансии где пишут что прод пишется не на самых новых версиях жабы, почему все просто не обновляются? Я такое только в плюсах видел, где челы до сих пор на с++11 сидят или просто вакуха странная?
>>2452730 >>В продакшене ОРМ используют или запросы напрямую? Да. Для орм - хибернейт Для запросов - jooq, jdbc template. Чистый jdbc никто не использует. >>не на самых новых версиях жабы, почему все просто не обновляются? 1.Часто такие проекты согласуют пару лет перед стартом. Поэтому хоть джава 19 уже и вышла - стартовать сейчас будут на 17 а то и на легаси 11. А к моменту запуска проекта уже 23лтс выйдет. 2. Разница между версиями не такая большая. Если не нужна реактивность - то и 8 пойдет. Если нужна - в 11 все уже есть. 17 ничего особо не дает (лум в нее так и не завезли). 3. Некоторые обновляются, но это больше продуктовая какая то разработка. А большая часть жабы - аутсорс. 4. Иногда используется какая та редкая или самописная либа/фреймворк, которая в новых версиях не запустится, а переписывать нерентабельно. >>Я такое только в плюсах видел, где челы до сих пор на с++11 сидят В плюсах емнип разные стандарты в версиях. Они просто несовместимы. Но тут лучше байтоебов спрашивать.