Вы видите копию треда, сохраненную 3 ноября 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Что такое Java?
Java - язык программирования с классами (aka объектно ориентированный), где нужно явно указывать тип объявляемых переменных (aka со строгой типизацией).
Заебись. А что ещё делает Java лучшим языком программирования?
- На Java написано столько всего, что любая твоя невообразимая идея уже существует в виде библиотеки, которую можно скочать и юзать
- Java - мультипарадигменный язык, тут можно писать в любом стиле, который тебе вздумается, даже к памяти можно получить доступ через Unsafe, но, при этом спроектирован язык для того, чтобы на нём писали в ОО-стиле.
- От прошлого пункта плавно перешли к отличной проработке языка - язык с самого начала задумывался как язык для ООП и многопоточности, благодаря чему писать чистокод на Java легче лёгкого!
- Java - относительно молодой язык, который до сих пор активно развивается жидами из Oracle, при этом почти неполживо опенсорсно.
- Java следует принципу write once во всём. Java никогда не ломает обратную совместимость - твой код, написанный на Java 1.2 будет работать на Java 18 - и не зависит от платформы, являя из себя единственный полностью кроссплатформенный язык с кроссплатформенной экосистемой (если не считать языков-паразитов на JVM).
Тред по жабе на гитхабе: https://github.com/java2ch/java-thread
Вики по вкатыванию в джаву: https://github.com/java2ch/java-thread/wiki
Предыдущий: >>2414876 (OP)
Сможет ли затем читатель самостоятельно написать на Спринге веб-приложение? Нет.
>На Java написано столько всего, что любая твоя невообразимая идея уже существует в виде библиотеки, которую можно скочать и юзать
Мне интересно кто из вас пытался выбраться за зеленую полянку со спрингопараши и реально написать что-нибудь на джаве? Большая часть библиотек на джаву за пределами веб дрисни не обновляются авторами уже, дай бог на 8 заведется
>>26006
Неоспаримый факт, но это не заслуга сишарпа, а заслуга дебилов из оракла и редхата
Выбрался НА спрингопарашу с "зелёной полянки" "чего-то реального на джаве" и страшно доволен.
Жиды это по факту гугловские шныри.
Да и оракл ваш помирает потихоньку. Их база с каждым годом теряет популярность, в облачной гонке они проиграли.
Зато все поглощают и поглощают.
Думаю в перспективе 5-7 лет оракла самого выкупят.
Зато есть про di, aop, jdbc и jpa на русском. Много конфигов без бута, а потом немного бута. Да, уж если ты такой книгоеб и любитель переводов, после Козьминой нужно читать Гутьеррес - SPRING BOOT 2.
Пока у руля (((Larry Ellison))) оракл будет и дальше жировать на контрактах и судебных исках
Ну у того же гугла ничего не отсудил и пососал. Теперь и рыбки помельче начнут попускать этого Ларри.
Чел, нахуй нужно что-то кроме веба на высокоуровневых языках? Десктоп мертв, а все остальное "кроме веба" пусть на c/c++ пишут.
Что ты собрался кроме веба то писать, шизик?
Ни говно, ни сраст, ни тем более петушарп не нужны. Есть java и GraalVM. Всё. Ультимативный разъёб всего, чего только можно разъебать.
Что конкретно из не веба ты имеешь ввиду? Особенно упоминая шарп. Десктоп мертв.
На го, кроме веба пишут всякие инфраструктурные штуки уровня кубера. Так на джаве такого еще больше. Но это 1% всех вакансий и хуй ты туда попадешь.
Раст это по сфере применения те же плюсы, только смузихлебские.
Лучшая концовка
Жаба за пределами спринга уже давным-давно никому не нужна, причем такая ситуация последние лет 10 наблюдается.
Помимо спрингового веба есть еще майнкрафт и какие-то десктоп-поделия на свинге, которые скорее мертвы чем живы.
>>26098
Тру, оракл загибается, и это факт. По выручке и капитализации они как были на уровне начала 10-х годов, так до сих пор и остались, а с нынешним кризисом вообще вниз покатились.
Что делает оракл? Нихуя полезного на самом деле. Их БД используют только в каких-то монструозных организациях вроде банков сша и европы. Они ее и дальше будут использовать, и через 10 лет, и через 20, просто потому что миграция почти невозможна.
А в современном мире все давно используют постгрес как реляционную БД.
Облака? Тут оракл жидко просрался, их сервисы ни в какое сравнение не идут с амазоновскими, гугловскими или даже майкрософтовскими.
Какие-то инновации, новые ЯП, ресерч? И тут оракл в глубокой жопе. Тот же MS имеет ресерч центры, где постоянно выкатывают новые идеи, в оракле нет нихуя. Ну и как место работы оракл очень хуевая контора, буквально ни один вменяемый анальник не пойдет к ним работать, когда есть возможность в том же помойном амазоне устроиться.
Ларри уже старый дед с деменцией, какие контракты? Старые да, а вот новые контракты никто в здравом уме заключать не станет. Оракл просто будет выкуплен в течение следующих 10 лет с очень высокой вероятностью.
А зачем нужна джава, когда есть шарп и го?
Жаба со своей спринг экосистемой была неплоха для своего времени, ее пик популярности пришелся на 2015 год примерно, дальше ничего толком в мире жабы не менялось, а конкуренты предложили идеи, благодаря которым можно писать код без тонны лишних сущностей, бойлерплейта и лишней магии под капотом.
Да есть для джавы современные фреймворки, но быдло жрет спринговый кал и игнорирует индустрию
На жабе почти никто не пишет инфраструктурные штуки. Когда-то в яндексе писали что-то, но и там на говноланг все переходят постепенно.
Инфра - это питон, го и c/c++ для лоулевела.
Джава и ее обвес по типу spring boot, data, jpa - для задач, где нужно много всякой примитивной бизнес-хуйни с кучей сущностей. По типу банков, crm erp систем, систем учета складов, магазинов, товаров, и т. д.
>>26149
Кваркус, микронавт есть. А толк от них какой?
Со спринга я уверен никто уже не слезет. Проще уволить всех конфигураторов аннотаций, которые называют себя джава девелоперами и начать писать на чем-то более современном и легковесном.
>GraalVM
Это кстати мертвая хуйня имхо. За последние годы от них толком не слышно ничего, да и вообще, нигде ни разу не видел на проде грааль
А кафка, эластик, дженкинс, джипа, рабит, неo4ж это не инфраструктурные штуки?
Из этого всего только кафка и эластик относятся к инфре и при этом взлетели.
neo4j это какой-то ноунейм, рабит на эрланге написан
Один проект? Ансибл вроде ещё. И все? Не густо.
В Нетфликсе куча всего разного использовалось, в том числе и жаба.
Но нетфликс уже ВСЁ, если ты еще не в курсе.
Я уже читал Гутьерреса. Как и во всех подобных книгах где-то в середине происходит обман читателя и материал обрывается, а автор перескакивает на другую тему. В итоге нет полной картины что делать дальше. Ещё он там форсит Groovy.
Уже нет
мимо сеньор с другого стека, думаю перекатиться
А Spring in action тебе тоже не угодил?
Сам я учил спринг по алешову(основы di), отусу(галпам по европам в ширь), летскоду(понять как это схематично выглядит в проекте) и уже потом по баелдунгу с докой(после отуса и летскода знал какие темы есть и что гуглить).
Еще прочитал по половине Spring in action(такое вот все в ширь, как в плейлистах летскода) и Козьминой(вообще мало полезного вынес, разве что по jdbctemplate глава зашла).
На джаве не пишут в Яндексе, а это единственное место, где в принципе собираюсь работать в своей жизни. В принципе не вижу смысла работать где-то кроме Яндекса.
Ну и не пиши на жабе, учи плюсы или что там в Яндексе. Зачем тратить своё время на шитпостинг?
Я скачал курс с отуса, там какой-то опухший чел после попойки еле-еле читает презенташку. Усвоения инфы в таком формате нулевое. И кто-то ещё за это деньги заплатил!
Вот и пускай срёт в Яндекс-треде. Ой, такого треда нет, а почему?
Какой же ты привередливый. Ну не все вкладываются в качество продакшена. Там обычные анальники милд/сенька уровня из галер уровня люкса и банков. Да, половина из них косноязычные, у некоторых дефекты речи. И это онлайн вебинары без монтажа(хотя я смотрел старый курс мелрушный по жавакору, типа смонтированный и там было не лучше). Но на русском они самые квалифицированные из того что можно купить на торрентах. Алишевы/трегуловы это джуны по факту, в скилбрейнсах/яндекс практикумах вообще читают люди в проде не работающие. Немчинский сам уже лет 10 в прод ни строчки не писал(кто у него там сидит - я хз). Еще я проходил курсы от епама, и там был уровень лекций/семинаров чуть выше скилбокса.
Немчинский нанимает работающих мидлов/сеньеров, чтобы они менторили студентов, а сам он чисто фирмой рулит и видеоблог ведёт.
Этот кстати наименее косноязычный из них. В курсе 20ого года с торрентов есть один один бородатый - у того дикое заикание. И еще один толстый тоже хуево объясняет.
Ну да, от его шараги я не видел ничего по спрингу. Но вот его ответы на новичковые вопросы иногда выдают, что он не в курсе ничего про индустрию сегодня. Его россказни про жава-ее стек, про эклипс, про микросервисы. Начинал слушать его древний курс по паттернам и мне вообще не зашло, дико много воды и уходит в свои шуточки постоянно, с примерами на коде все очень хуево.
Полгода как джун. Хочу через полгода получить лычку тут или через год свалить в другую контору и получить там. В яндексы не собираюсь. Разве что из маленькой галеры хотелось бы в галеру побольше или в банк(в тинек тоже не собираюсь).
Насколько хорошо надо знать спринг, постгрю и джаву? Никогда не работал с кубером и секурити. Насколько это важно? Кубера на проекте нет(изучать самому по курсам?), к секурити не подпускают пока(требовать, чтобы дали потрогать?)
Мидол - это только не про технологии, но и про ебучие софтскиллы. Ты должен быть самостоятельным, тебе можно доверить задачу среднего масштаба, а ты её сделаешь сам, не бегая к лиду за каждым вопросом и, возможно, привлекая к работе доверенных тебе джунов и других миддлов, распределять небольшие задачи между ними, координировать их работу, ревьюить и т.д.
Ну и технологии, бестпрактисты и подходы надо знать увереннее, чем их знают джуны, соответственно, надо разбираться во всём, что хотя бы в теории может понадобиться, в том числе твои кубер и секурити, даже если их изучать самостоятельно, а не на работе.
На уровне продвинутого пользователя. Можешь юзать консольку, писать простые шелл-скрипты, устанавливать пакеты, редактировать конфиги в vim или хотя бы nano, хоть раз юзал SSH. На уровне админа/девопса знать не надо.
https://youtu.be/FdfAcyZk8UI
Как же лампово! Как-будто вернулся на 10 лет назад.
Правда, нас в 2006 учили джаве сразу на Эклипсе.
>бестпрактисты и подходы надо знать увереннее, чем их знают джуны
То есть надо осилить клинкоды, паттерны, рефакторинги.
Бестпрактисы помню по работе с рестом. Еще какие беспрактисы популярные есть?
Ну вот кроме прочего у меня скачаны книжки по углубленной постгре, по микросервисам, по мессенджинг паттернам, кабанчик.
Ну и вот секурити с кубером тоже думаю стоит ли уже сейчас смотреть.
Тут скорее вопрос про приоритеты в изучении, что больше котируется в среднем по рынку, типа с чего начать, роадмапу типа хочу себе составить.
>не бегая к лиду за каждым вопросом
тут у меня две проблемы.
Я не особо в курсе всех бизнес требований проекта и просто не понимаю некоторых вещей, я полгода на проекте, мидлы по полтора года, а тимлид почти три, начиная с самого раннего планирования. Ну и поэтому меня не зовут на половину созвонов с аналитиками/менеджерами/фронтами. И поэтому разрыв в понимании между мной и старшими товарищами не особо сокращается.
Ну и я часто бегаю к тимлиду, чтобы спросить как лучше в архитектурном плане сделать, когда есть несколько вариантов решения. Особенно если это новые для команды технологии и никто в них, кроме тимлида/вообще никто не разбирается. Ну я мог бы и сам решить, но боюсь потом ревьювер не согласится и придется много переделывать.
>ревьюить и т.д
Ревью мне уже давали проводить. Там был микросервис на средне-начальной стадии(3к строчек кода без тестов, 5к с тестами) с одной фичей(+1,5к -800 строчек, вместе с тестами - 12 коммитов) и я дико заебался. В итоге не очень справился:
1. не хватило знания клинкодства, чтобы тыкнуть в грязные места.
2. не особо знал сути микросерсвиса, куски которого мне давали ревьювить и поэтому например вообще не лез в суть запросов в базу.
мимо посмотрел слитый курс от гикбрейнс и устроился жава ждуном, босс сказал учить спринг
Да нет таких. Тот же Spring in Action рассматривает слишком мало, много модулей Spring-а пропущены
Если уже есть основы, то лучше читать баелдунг+доку.
Хотя то что ты перечислил это не все вместе уроков 5-6. То есть 12 часов максимум.
> Хотя то что ты перечислил это не все вместе уроков 5-6. То есть 12 часов максимум.
Ты про это?
> бутом, mvc, датой, секурити, aop
Или про это?
> Cloud, WebFlux, Batch, микросервисный пиздеж и тд
> бутом, mvc, датой, секурити, aop
остальное по ситуации, бывает даже спринг дата и секурити не нужны, их функционал часто заменяется другими инстументами. У босса твоего и спроси, что из спринга тебе надо.
Мне ни флукс, ни батч пока не пригодился, хотя может через пару месяцев и дадут таки потрогать реактивщину. Тогда и буду с ней возиться.
Я с такого места уволился на испытательном сроке. У них к такому стеку прилагалось отсутствие тестов, деплой на внешний томкат, полное непонимание как работает проект даже тимлидом, хранимки, лежащие в репошках в строчках, фронт на собственном велосипеде(чтобы сэкономить на фронтовиках). И полностью неадекватный кабан с дедлайном через полтора месяца.
Oracle, Azul, Adoptium, Microsoft OpenJDK.
Что из этого лучше устанавливать?
Потому что пидорасы, которые разрабатывают жабу, выёбываются с лицензиями.
Юзать AdoptOpenJdk.
Ставить можешь что угодно, проблем скорее всего не будет. Проще всего - опенждк или либерику с бэкдорами от фсб
❌🤭🤭🤭😏🤗😂😂🤣ТРЕД ГАВНО 🤭🤭🤭😏🤗😂😂🤣❌
❌ ❌❌❌❌❌❌❌❌❌❌❌❌❌❌❌❌❌❌❌❌ ❌
🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋
💖💖C# ONE LOVE💖💖
🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋
🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋
💖💖C# ONE LOVE💖💖
🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋
🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋
💖💖C# ONE LOVE💖💖
🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋
🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋
💖💖C# ONE LOVE💖💖
🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋🔋
Правильно! Чеды пишут на пхп, чтобы не тратить много драгоценного личного времени на изучение основ.
Единственный способ познать Спринг - это поступить в подмастерья к Спринг мастеру. И дать клятву никому, за пределами Спринг гильдии, не разглашать секреты Спринга. Тогда мастер раскроет секреты Спринга, а самых одарённых научит аннотации @MakeVseZaebis
>Так можно было бы и петухлин закрыть, и наконец то взять в свои руки единственную IDE для джавы.
Ни первое, ни второе нахуй не нужно. Котлин это альтернатива для сахарозависимых, убъешь Котлин пойдут к 🐓#. Они получили на халяву топовую иде зачем им убивать её?
1с, мидол, стаж год, зп та же, бэк.
Заебало процедурное слабо типизированное говнецо, хочу сильно типизированное на этот раз. Основной на мой взгляд камень преткновения - необходимость удалёнки, в том плане, что высоковероятно будут сильно мяться на этот счёт, но я не приемлю ничего иного, т.к. не из дс и хорошо себя чувствую дома в уютном креслице (начинал с офиса местного, но свинтил как только смог).
Пиздеть про опыт - могу, но надо бы хард скиллы чутка подтянуть, если возьмутся проверить.
Поддерживаю!
Может лучше PHP? Джавистов гораздо меньше если что, напоминаю.
Посмотрел лицензию адопта. Как так получилось, что адопт под апаче 2.0, а оригинальй попен ждк под жопаэлем?
>Как так получилось, что адопт под апаче 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
P.S. Работа будет только через год :с Hibernate уже вызубрен, просто
надоело уже каждую неделю повторять изученные фреймворки, я их не использую каждый день...(jdbc, hibernate, mysql)
За год армии ты, вероятнее всего, хибернейт забудешь напрочь, и потом придётся его не то чтобы повторять - учить практически заново. Хотя смотря сколько времени ты с ним возился, если просто прочитал теории и выполнил пару примеров, то забудешь, а если плотно с ним ебался не меньше месяца, то может, что-то сможешь вспомнить.
Он не говорил, что его в армию забирают, скорее всего это 17 летний пердёж, который почему то решил ждать до 18 лет до работы. И вообще, если хоть что-то реальное чел сделает с хибером то никогда в жизни не забудет это. Если зубрил то конечно забудет через месяц.
У нас не закрытый клуб, и в первом пункте написано не нарушать законы Нидерландов и не постить ЦП, лол.
Видимо, хостинг там. В whois тоже очень странно, пишут про Панаму и Гонконк, а в определении местоположения сервера - Канада, США, Бразилия и Нидерланды.
Я люблю рефакторить и править баги, но х1.5 - слишком мало.
Не согласен. За x2.5 может и соглашусь, хотя, наверное, выгорю быстро.
Мне и здесь хорошо, с няшной жабочкой, милым легаси и зелёным спрингом (●'◡'●)
У тебя, наверное, и ночью под кроватью шарпоблядь рычит.
https://courses.springframework.guru/p/spring-framework-5-begginer-to-guru
Ваше мнение?
Вроде план прям всеобъемлющий, даже страшновато нахуй.
В шапке предлагается Spring Core от того же автора, но на торрентах не нашёл.
мимо ничё кроме жаба кор не знаю, поддерживаю легасный мод для майнкрафта, охуеваю от тонн говнокода в нём
Divide and conquer - общее название алгоритмов, где ты делишь все данные/задачи на маленькие подзадачи. Binary search - один из таких алгоритмов, есть ещё, например, merge sort.
Практика - это порешать задачи на литкоде и написать несколько пет-проектов с изученными технологиями. Для этого не надо никаких вкатунских курсов.
Бывают и другие алгоритмы, например, вычисление квадратного корня или тригонометрических функций оперирует ограниченным количеством переменных.
В широком смысле алгоритм - любые действия над данными для решения той или иной задачи, то есть весь код, который ты пишешь, состоит из алгоритмов, а ты ведь не только с коллекциями работаешь.
А если например взять Bubble Sort, он применим только к массивам и коллекциям ?
https://www.udemy.com/course/aws-certified-developer-associate-dva-c01/ нормальный курс для глубокого изучения? И можете еще чего-нибудь порекомендовать для вката в aws?
Шутка про геополитическую ситуацию
Даже если бы не священный крестовый поход императора с целью очистки сектора Хохлуну от ереси Хоруса, я бы не советовал.
В почти любой конторе будут в первую очердить ценить архитектурные навыки, а не умение закинуть свою залупу на один из успешных сервисов.
Если понадобится прям сертификат - пусть кабан на курс скидывается.
Вообще не понимаю, что он рассказывает.
>Java - относительно молодой язык
Лол, я понимаю если бы такое шофёры писали, но жаба и молодой
В шарпотреде когда ты это постил - могло прокатить, здесь такая толстота с учётом обстоятельств появления самого шарпа - не прокатит.
Майкам не подошла джава для собственных нужд. Они сделали свой ОО язык. В чем проблема?
Если бы жаба пиздила хоть что-то из шарпа, все были бы счастливы. Нет у нас на LINQ, ни автопроперти, всё через костыли и примитивно.
И ты так говоришь "вы", будто крудомакаки из банков лично вносят фичи в язык. Оракл срать хотел на наше мнение и делает так, как считает нужным. Можешь создать JEP и ждать 10 лет, пока его рассмотрят. Понял, насколько у нас всё плохо? Хотя вряд ли у вас лучше.
Да, дохуя новых проектов с современным стеком. Т.к. уже всё написано, новые проекты сводятся к переписыванию легаси, которое чем-то не устроило бизнес.
Go, .NET, C++. Или комбинации. Или всё в месте. Еще есть доля Python, но он скорее для того чтобы хуяк-хуяк и в продакшн показать заказчику, а затем переделать под нормальный и быстрый язык
На западе - на всем. Но учитывая контекст - джава весьма популярна, потому что много библиотек для интеграции со всем чем можно, хороший и развитый тулинг, на рынке много разработчиков. Практически весь европейский финтех сидит на джаве или котлине.
>Лучше стабильный язык, чем бесконечные переделки
Swift пизда стабильный, да? Каждый 4 патч ломает нахуй старое говно и заменяет на новое. И в чем они не правы собсна, я на самом деле только за за такой подход
Жаба 11 вышла в 2018 году.
Jooq попробуй
Не переходят потому что говноеды и не хотят учить новые фичи которые улучшат жизнь, а не потому что там что-то ломается
>Хотя откуда тебе, шарпобляди, знать про это.
Конечно, меня ведь предупреждают в release notice о том что при апдейте сломается определенная часть и при апдейте я уже заранее готов и знаю как и что где фиксить.
>Потому что только в жабе такое количество легаси, которое хуй перепишешь быстро.
Всё пиво не выпить, но к этому надо стремиться. Всё легаси не перепишешь, но к этому надо стремиться.
RowMapper погугли
На западе в основном вижу много питона, js'а, жабы, дотнета и немного го.
Новые проекты тут хз, наверное примерно одинаково распределены доли между го питоном жабой и сишарпом пропорционально их популярности
>>2427995 →
>>2427996 →
>>2428000 →
>>2428019 →
Заберите своего долбоёба, он же откровенную бредятину несет.
В том, что обвинение языка в пиздинге фич плохо бьётся с фактом, что язык, из которого пиздятся фичи, изначально спизжен из языка, в который эти фичи пиздятся.
Это как если бы я пришёл в крестотред и начал там выть, что крестовики спиздили себе что-нибудь из джавы.
У тебя дислексия? Написано же в настоящем времени, "никто не пишет". Инбифо ты найдешь один свежий говеный ноунейм проект
Хуй знает, напомнить тебе, когда все, что ты перечислил, писалось? Надо ли говорить, что того же Голанга или просто не было, или он был в сырейшем состоянии?
Жаба сейчас буквально везде мертва, кроме спринга, и в бэкенде ее уже начинают щемить. Оракл дохнет. It's over.
Но по факту на спринге вакансий больше, чем в беке на шарпе и голанге вместе взятых. А твой тейк, якобы на жабе больше легаси и меньше новых проектов, чем на го и шарпе тебе нужно как-то доказать.
Да тут особо никак не докажешь, но он прав, все эти кафки кассандры эластики писались довольно давно, лет 10-12 назад, тогда кроме жабы был С++98/03, шарп под виндой, питон, и скала.
С тех пор и С++ стал гораздо лучше, и голанг вышел, и дотнет портировали на линукс. Скала сдохла, но вместо нее котлин появился.
Так что новых проектов на джаве реально почти что нет. Есть на гошке, котлине и в меньшей степени на дотнете. Жабу как правило тянут везде еще с середины нулевых, тогда, во времена выхода восьмерки она как раз была актуальна.
Сейчас жаба живет только лишь за счет спринга, в целом это легко заметно по количеству проектов, где джава без спринга используется. Да и большая часть библиотек не для бекенда реально застряла где-то в нулевых и начале 10-х и больше не обновляется.
Да и в беке до сих пор не смогли R2DBC нормально доделать. И никогда не доделают по всей видимости, так как реактивщина в жабе провалилась.
Хз в чем прикол использовать очень всратый спринг в новых проектах. Нахуя? Чтобы потом дебажить 300 лет, периодически проваливаясь в прокси и кишки спринга?
На той же гошке все в разы прозрачнее получается. Код без магии, где ты сам всем управляешь, сейчас больше в почете, чем монструозные ООП языки по типу джавы, шарпа с гигантской магией фреймворков под капотом и жирным тяжелым GC впридачу.
>Код без магии, где ты сам всем управляешь,
В джаве тоже так можно
>монструозные ООП языки по типу джавы
Монструозные только дебилы, которые любят говна понаписать. Через 10лет в вашей "гошке" тоже будут кучи легаси кала, как щяс в c++
>>28230
>>28172
Ну опять же хуй знает в чем суть спора, но на котлине новых проектов более чем достаточно, а раньше, да и сейчас, на джаве монолиты распиливали на микросервисы.
В целом на самом деле на язык разрабу должно быть похуй, если уж собрался работать, то бери любой, но жаба довольно популярна, есть кучи туториалов мурзилок от всевозможных авторов тот же баелдунг, у шарпа кроме мсдн маловато ресурсов будет, про гошку хз, если честно.
C++ явно не для бекенда язык, да и на нем в разы сложнее писать, чем на той же жабе, ну просто говно получается почти во всех случаях.
Так что kotlin/java/spring/мб ktor вполне себе актуальный стек технологий на сегодня и завтра.
Гигантские инфра проекты по типу кафки докера кубернетиса эластика итд сейчас мало кто пишет, ну во всяком случае я не слышал о чем-то новом и революционном за последние 2-4 года. Ту же кассандру хотели переписать на С++ под названием scylladb, переписывают с 2015 года по сей день, а в проде scylladb так и не появилась, хотя кассандру оригинальную на джаве за несколько лет отпидорасили с нуля до состояния выката в прод
>2k22
>вкатуны в который раз спорят какой язык лучше, популярнее и где больше платят
Вкатуны никогда не меняются...
Причем делают это в треде, посвященном конкретному языку... И эти люди собираются работать прогроммистоме... Я подозреваю что это те же люди, которые делают вызов к БД из toString()...
Пост твоего учителя информатики в группе вконтакте?
Объекты не создаются, а декларируются как "зависимости".
DI и IoC на самом деле тупые вырожденные масло-масляные термины, порожденные мосхом быдлокодеров-теоретиков, не осознающих простой сути вещей. Ведь в мире математики, определение функции
f(x,y) { return x+y; }
по суте так же является имплементацией IoC, ибо аргументы её не создаются внутри реализации.
DI это конкретный способ передачи зависимостей, грубо говоря, запихувание их в поля объектов и аргументы вызовов.
Как альтернатива - патттерн "локатор" , это как если бы наша f(x,y) была бы определена как
f(){
return Locator.find("x") + Locator.find("y");
}
В общем гумусная кринжатура. Но следует заучить, чтоб на собесах не чморили.
В общем, в бизнес коде происходит работа, а выделение цопе происходит контейнером - роли четко разграничены
По иронии судьбы, IoC/DI контейнеры типа спринга делают хорошо все что угодно --- интеграции с разными хероборами типа версерверов, баз и очередей, контроль контроль доступа, скоупа и жизненного цикла разделяемых ресурсов - все. Кроме непосредственно DI и IoC. Работу над зависимостями контейнеры делают просто отвратительно, да и сама идея отдать зависимости на откуп софта --- вырожденческая.
Это слегоньца подмена понятий. Но хорошая подмена, годная.
В мире математики едва ли есть вообще понятия типа "зависимость" и "создание аргументов". Создание аргументов - это чисто императивная штука, присущая архитектуре наших физических и виртуальных машин, с их ленточкой инструкций, процессором и памятью. В математике как правило такой хуйней как "создание и уничтожение ресурсов" не занимаются. Функция в математике --- уже сама по себе и есть декларация зависимости между ее аргументами и результатом. Это литералли определение термина "функция" --- описание зависимости.
И в этом суть разница между императивным и декларативным программированием. Стейтмент "объекты не создаются, а декларируются как зависимости" --- ни что иное как агитация кодить декларативно, а не императивно. Что в целом годно. Но имеет свои нюансы, так как мы по прежнему кодим под машинки с императивными процами и разделяемой памятью.
Пф. Апелляция к оптимальности кода - самый тупорылый аргумент, который котировался разве что во времена написания этой цитаты. По настоящему решают количество и дешевизна человекочасов.
Просто возникает резонный вопрос, а как было до IoC?
Есть примеры не декларативного программирования?
Где заканчивается недекларативное программирование и начинается инъекция? Мне приходит только создание потока, какого-нибудь соединения типа сокета, т.к. тут реально идет отъем неиллюзорных ресурсов. Но и даже в этих местах, за счет инкапсуляции, только на основе исторически сложивщихся контрактов можно утверждать, что ресурс был реально потрачен или создан. В принципе на уровне агента jvm можно сделать управляемым создание каких угодно объектов и наебать клиентский код.
У меня был Pentium 100, 16Mb, 1Gb HDD + Win95 в 96 году. Какого года паста?
> Интересно, такое может быть, или это просто рофл?
Может конечно, лол. А что ему собсна мешает? Если он в 16 начал вкатываться, в 17-18 устроился на работу, получил опыт ахуенный, а сейчас спустя два года стал миддлом на удаленку. Почему бы и нет?
Ну а как же его в штат взяли? В банках же типа все серьезно, формальности, все дела, а тут необразованный тип метит на место разработчика.
> В банках же типа все серьезно, формальности, все дела
Это стереотип на уровне "все программисты должны знать высшую математику".
>>28456
Знакомый дропнул вышку и работает в сбере спокойно разрабом.
Вышка по-хорошему нужна только там, где нужно реально шарить в CS, какие-нибудь исследования в машобе, обработке сигналов, компьютерное зрение, компиляторы. Вот там уже нужна вышка, причем не просто диплом, а знания.
В банках на большинстве позиций никакого образования, кроме школьного, не нужно.
В каких-то банках можно и на удаленке, где-то нельзя, но в большинстве мест совмещенный режим.
Сбер слишком большой с кучей дочерних организаций. Где-то и фулл удаленка есть, где-то в офис заставляют 2-3 раза в неделю приезжать. Где-то и полная пятидневка в офисном рабстве наверняка есть в сбере.
он не в сбере
В сбер устроиться? Полгода-год назад было несложно, потом после февраля сбер резко уменьшил найм, сам понимаешь.
Да и вообще сбер считался не сказать, что топовым местом работы, многие хейтили его, хотя он огромный ппц, там куча команд и везде разные условия и разный уровень.
Да я ошибся. Из-за границы в банке нельзя работать.
Да не обязательно в сбер, может и в другой банк. Я думал, там отбирают лучших выпускников профильных вузов, финансы же типа, все серьезно.
В сбер, здесь все твои друзья.
для кобола не написали спринг, да и кобольщиков хуй найдешь за адекватные деньги - а жабистов дохуя
>>27889
>>Питон 3 вышел в 2008
самая древняя джава из используемых сейчас - Java SE 8 (18 марта 2014)
сейчас пишут в основном на 11 (сентябрь 2018)
осенью выходит спринг 6 и у него минимальные требования - Java SE 17, через полгода-год начнут потихоньку пересаживаться на нее
А когда там питон 4 выходит?
>>не хотят учить новые фичи
Чаще противником обновлений становится бизнес, а не разрабы. Если архитектор смог втащить реактивный стек - хорошо, нет - команда доедает легаси на жабе 8.
>>27967
>>в release notice о том что при апдейте сломается определенная часть и при апдейте я уже заранее готов и знаю как и что где фиксить.
пря так и пишут что сломается либа от васяна версии 5- и фреймворк от ирокезов версии 4- ?
>>27969
>>Всё легаси не перепишешь, но к этому надо стремиться.
в субботу и воскресенье в свое личное время без оплаты, ок?
>>живет только лишь за счет спринга
>>не для бекенда реально застряла где-то в нулевых
А что не так то? Язык прочно занял свою нишу - бэкенд для крупняка - там и сидит. Работы хватает, писать на спринге не сложно.
>>так как реактивщина в жабе провалилась.
Так уж и провалилась? Там конечно полно костыкей и не очевидных вещей, а с выходом лума это все по пизде пойдет, но сейчас то все работает и результат заметен.
>>28230
>>в чем прикол использовать очень всратый спринг в новых проектах.
спринг 4 без бута уже и не встретишь нигде
>>Код без магии, где ты сам всем управляешь, сейчас больше в почете
Охуеешь писать тонны кода для простейших действий. Я лучше напишу @MakeZaebis и похуй как он там написан, если он ведет себя предсказуемо и понятно. Если тебе хочется все контролировать - пиши на С.
>>жирным тяжелым GC впридачу
когда ворочаешь гигабайтами данных в памяти - на несколько мегабайт уже похуй. Время разработчика дороже планки памяти.
капчуешь из 2015?
Использую logback + slf4j
Нифига не могу понять, как разделить уровни логирования для разных аппендеров. Хочу чтобы в файл шло все что приоритетнее чем info, а в stdout все, начиная от TRACE. Может нужно заводить два разных логгера? Но я тогда не понимаю как их в конфиге описать, и смысл ROOT тоже не понимаю.
Где можно про все это нормально почитать?
А я уже знал ассемблер Z80A
Эклипс тоже тормозит, но адекватно закрывается.
Самым легковесным оказался как ни странно VS Code. Жрёт всего 500Мб ОЗУ.
Идея запускает кучу процессов джавы, они не сразу завершаются, я поэтому при тормозах идеи убиваю их через taskkill -f -im java.exe -t.
>Чаще противником обновлений становится бизнес, а не разрабы
Да бизнесу ваще пахую че там на какой версии сделано, они хотят быстро + качественно + дешево.
>пря так и пишут что сломается либа от васяна версии 5- и фреймворк от ирокезов версии 4- ?
Да, прям так и пишут.
>в субботу и воскресенье в свое личное время без оплаты, ок?
Ну кабанкабаныч.
>>Да бизнесу ваще пахую че там
Вот именно что бизнесу похую, поэтому он не хочет оплачиавать переход на новую версию уже существующего кода. Пердольтесь с тем что есть, пока все разрабы не разбегутся или проект не сдохнет.
>>Да, прям так и пишут.
Чудеса какие, почти как спринг бут.
>>Ну кабанкабаныч.
Ты что говнокодер и хочешь писать на легаси что ли?
>Ты что говнокодер и хочешь писать на легаси что ли?
С детства мечтаю, жаль пока мечта не исполнилась.
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) {}
}
}
Хочется так же красиво и кратко обращаться к фиксированным группам, но с енамом они статичные и делят один инстанс.
No
Какой один инстанс они делят, о чем ты?
Каждое значение енама и есть отдельный инстанс класса енама.
Поле bars у тебя не статическое, линкед лист у тебя создается в момент инстанцирования BarGroup, следовательно каждый из значений енама будет иметь отдельный независимый от остальных лист. Ничего они не делят. С чего ты взял что делят?
public class Main {
enum BarGroup {
SMALL, MEDIUM, BIG;
public java.util.List<String> bars = new LinkedList<>();
}
public static void main(String... args) {
BarGroup.MEDIUM.bars.add("a");
BarGroup.SMALL.bars.add("b");
Arrays.stream(BarGroup.values()).map(i -> i.bars).forEach(System.out::println);
}
}
хули так ?
А че за докер-компоуз с кафкой ? Типа там 3 кафка-ноды, схема-регистри, контрол центер и все у тебя на локалхосте?
ну типо.
коллега сказал что у него за 2м макс все с нуля стартуется - и тест инвайрнмент и сама aппликация.
иногда бывает еррор по типу "waiting for tcp socket on localhost to become available"
точно что то не так с самим докХЕРом
Вроде что-то не так было с докером на макпуках. Особенно на эпловских камнях.
Коллега тоже из этих?
>Любой мидол может с пары зарплат купить себе макпук.
Только если мидол C# девелопер, жава сеньёр себе может тока хуй за щеку получить, при этом еще и доплатить придется.
Это ты выводы сделал с того, что в твоей долбильне относятся к тебе как к скоту и ебут в пердачелло? У нас всё нормально и никто нас в очко не ебет.
Было бы нормально - ты бы не сидел в чужих тредах.
Для объектов.
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
}
}
Так сами значения енама статичные, в том-то и дело. Каждый следующий объект меняющий что-то внутри значения енама видит, что сделал предыдущий.
У задач на собесе только одно назначение: проверить твои навыки алгоритмического мышления. Если написать круд может любой вкатыш, то при необходимости реализовать что-то сложнее ты должен сесть, подумать и сделать, и даже если рекурсивно обходить деревья и намеренно использовать LinkedList вместо ArrayList надо раз в несколько месяцев, ты должен справиться с этим самостоятельно, а не бежать к сеньору, чтобы он придумал оптимальное решение и сам всё сделал.
Очень спорно. Т.е. ты предлагаешь не решать вопросы в команде, а взять лучшего алгодрочера в надежде на то что он напишет самый охуенный велосипед?
Какие ещё "вопросы в команде"? Ты собираешься код писать или обсуждать на созвонах по нескольку часов, как его писать? Есть такая вещь, как бизнес-логика, для неё нет готовых библиотек, которые можно переиспользовать, нет типичных подходов и алгоритмов, нет кода на стековерфлоу для копипастинга, надо всё продумывать самому, так что никакой это не велосипед. Если ты способен написать велосипедную реализацию широко используемого алгоритма, то и более специфичный алгоритм для бизнес-логики ты придумать сможешь с большей вероятностью, чем тот кандидат, который не смог даже словами описать примерное решение. Поэтому да, надо искать алгодрочера, они, как показывает практика, справляются с такими задачами намного эффективнее, чем те, кто прошёл курс и сразу пошёл на собес. Это даже важнее, чем знать хибернейт и кишки спринга.
Ну здрасте. Как ты себе это представляешь. Класс есть класс, Объект есть объект. Шашечьки или ехать. Получая ссылку на объект, ты получаешь ссылку в том числе на значения его атрибутов. Хошь уникальные значения атрибутов - создавай уникальные объекты. А енам - это всего лишь конечный сет уже созданных объектов. В байткоде после компиляции енам вообще просто класс с пучком статических констант.
Сделай вместо енама иерархию классов, с подтипом для каждого значения твоего енама. Если ты в новых версиях джавы, присмотрись к sealed classes.
забей, ето с работы, у меня пропуканый 8 летний т440п
Так я и спрашиваю как похожий результат получить. Просто вот такая альтернатива, например, выглядит совсем всрато, когда делаешь отдельный класс, плодишь кучу переменных, делаешь присваивания и обращаешься как к отдельной переменной:
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 ) {}
ㅤ}
}
вместо того чтоб >>29133 ждать пока маня1 запустить докер буду на похуй пушить в CI и оттуда дибагать
Прогугли динамик апдейты и инсерты в хибере
Ну а хули бы нет. Кабан богатый, макпук, кафка походу конфлюэнтовская. У нас вот бомжей раннеры на ci на вес золота.
Spring test
Есть такие штуки:
https://rieckpil.de/spring-boot-test-slices-overview-and-usage/
Мы используем в основном вот эти штуки:
https://rieckpil.de/howto-write-spring-boot-integration-tests-with-a-real-database/
https://rieckpil.de/guide-to-testing-spring-boot-applications-with-mockmvc/
Плюс если очень уж сложный метод в сервисе, то юниты с замоканными зависимостями и их верифаем.
https://rieckpil.de/difference-between-mock-and-mockbean-spring-boot-applications/
https://www.toptal.com/java/a-guide-to-everyday-mockito
Да. Если место не кал без тестов, то первые полгода ты тестов будешь писать втрое больше, чем кода.
На собесах вряд ли спросят по ним, но в тестовых применить такую хрень надо.
За неделю скорее для приемлимого уровня. Самое сложное это то, что тестовый контекст это немного другой контекст и конфиги там по другому ищутся.
После статей Борисовну наверни. https://www.youtube.com/watch?v=7mZqJShu_3c
Но не сильно углубляйся, он как обычно слишком много умняка из кишков тащит. Но для отдаленного представления что там в кишках - норм.
А можно джаву не учить?
Там как в шарпе напихали всего сподряд. В итоге, вместо лаконичного и элегантного языка, получилась помойка.
Тру, смотрю на синтаксис и понимаю, что туда просто запихнули весь тот синтаксический сахар, которого по мнению дизайнеров языка так сильно не хватало в жабе.
Самое смешное, что лямбды в котлине нужно оборачивать в фигурные скобки, а в жабе нет, лол. Вообще какой-то всратый прикол с этим выносом лямбды из аргументов функции за их пределы.
Сейчас вот самое интересное буду тыкать - корутины. Все остальное не более чем better java с null safety воспринимается.
Разве что программисты-свингеры.
>Вообще какой-то всратый прикол с этим выносом лямбды из аргументов функции за их пределы.
Наоборот. Это база для DSL, как и в груви.
Это которые женами обмениваются?
Можно подробнее? В чем плюс для DSL?
Если джун - ты не готов в 100% случаях. Все джуны тупые и нихуя не знают + не умеют, так что тут просто надо брать и делать готовясь к худшему и что после собеса в команде тимлида появятся новые локальные рофлы.
Не пугай малышей. Вкатышу бы класс уметь правильно написать, не говоря уж о каких-то тредах.
Ты уверен, что это мне надо? Половину не знаю, но если судить по той, что знаю, то не так уж и сложно разобраться
Ну-ка давай, класс который вычисляет является ли число полиндромом. Без перевода в строку, сучка.
Да ты мне сказочки не рассказывай, показывай код.
Хочу на Kotlin+JavaFX (используя различные фишки из новых версий Java) сделать десктоп приложение. Это приложение будут в основном использовать на Windows люди, у которых либо нет jvm вообще, либо java 8 версии.
Слышал, что для такого вроде как можно использовать GraalVM.
Подскажите, что подойдёт ли graalvm для этого? Если да - что у меня должно быть установлено помимо java, чтобы уже начать писать приложение?
Заранее спасибо
>является ли число полиндромом
А в чем прикол? В цикле берем цифры с конца числа и по ним конструируем новое, постоянно умножая на 10 и прибавляя очередное число.
Если в конце исходное и сконструированные числа равны, то это палиндром.
Тут основная фишка это догадаться, что нужно конструировать число умножая на 10 постоянно, для многих вкатунов, которые давным давно учили все эти свойства умножения деления может быть тяжеловато.
Потому что перегрузка операторов для петухов.
Потому что Оракл так решил за нас. Жри чо дали.
Есть, но это, или лютое легаси, или жидбрейнс.
Это не автобоксинг, а конвертация int в BigDecimal.
Автобоксинг это был бы если бы, это был BigDecimal литерал, но таких в языке нет.
Ну крч, мне нужно связать два restful приложения - куда смотреть? Одно из них будет запрашивать xml-ину у другого
Я просто джуном работаю и еще не понял всей это картины - для чего нужны весна-облако, кафка, раббит мку, кубер и тд
Микросервисная архитектура - это ведь рест сервисы, а общаются, запросы друг к другу они делают через брокеры сообщений, к которым как раз и относится кафка. Или я что то не так понял?
Нет, они общаются через брокеры. Посылать RestTemplate-ы напрямую - примитивщина. Ладно, я понял, ты не в курсах
Что?
Ты не знаешь нихуя, пчел. То, что ты перечислил - уровень шкилы, не уровень серьезных дядь
>А в чем прикол?
В МВП кто-то пиздел, что можно за пару арифметический операция получить инвертированное число.
>иначе нахуя им рест?
Им и не нужен, он нужен фронту или внешним клиентам. А для общения между сервисами есть вещи и получше. gRPC для синхронных сообщений, очереди для асинхронных.
а не так разве работает ?
типо:
API -> Kafka Private Topic -> Microservice -> Public Topic -> API
Спринг эмвиси, дату жопу, и секьюрити с докером. На поверхностном уровне.
Ну это для стажера нужно. Для ждуна уже кафки микросервисы кубернетисы уметь разворачивать.
Внутренний клиент это тот кто разрабатывается вашей же компанией. В основном это влияет на обратную совместимость API, аутентификацию, балансировку, защиту от DoS, возможность долго держать открытое соединение и т.п.
>фор(;а>0:а/=10)
Вот тут-то и проблема, у тебя будет столько итераций цикла сколько знаков в числе. А там речь шла о том, что можно херакнуть по модулю и получить сум в одно действие.
ну-ка нахуй отличи внешнего клиента от внутреннего изнутри микросервиса к которому постучались на рест
Спринг - плохой пример, т.к. в нём есть всё, что только можно подумать и даже что нельзя.
>херакнуть по модулю и получить сум в одно действие
Как ты это представляешь?
Тут либо через строку, либо через "нарезание" числа.
>Как ты это представляешь?
Я бы тоже хотел узнать, потому я и писал
>В МВП кто-то пиздел, что можно
Совсем тупой? Речь идет о том, что АПИ для внешних клиентов и внутренних отличаются.
Чел, синхронное общение между микросервисами это намного чаще рест, чем grpc. Оптимизировать трафик нужно далеко не везде. А с рестом можно по одной и той же апишке отдавать и фронту и другому сервису(ну с разными ендпоинтами, разруленными апи гейтвеем).
Синхронное общение между микросервисами - это лютый пиздец и антипаттерн. Не важно, рест, grpc или вообще soap.
🧼
Для тебя ниче не достаточно, иди общайся рест темплейтами, ДЕБИЛ БЛЯДЬ))))
Смотря что ты подразумеваешь под обычным петом
>https://rieckpil.de/spring-boot-test-slices-overview-and-usage/
Бред ебаный. А если у меня кастомная валидация для webmvc или кастомный конвертер для jdbc через компонент сделан, с этими хуевинами они не подгрузятся? И че тестировать тогда, то что и так уже протестировано при сборке самого спринга?
ты тупорылое чмо
вызываемый сервис не может отличить когда к нему стучится внутренний клиент, а когда внешний
>если у меня кастомная валидация для webmvc
это и тестируется. кидаешь в тест невалидные и пограничные запросы и получаешь правильную ошибку с правильным сообщением об ошибке. Типа
mockMvc.perform(post(URL)
.contentType(MediaType.APPLICATION_JSON)
.content(organizationJson))
.andDo(print())
.andExpect(status().isBadRequest())
.andExpect(content().json(expectedInvalidMessageJson));
С тестами на ждбс не работал, скорее всего тоже что-то такое есть.
>Testing the Web Layer With @WebMvcTest
>What's not part of the Spring Test Context: @Service, @Component, @Repository beans
Кто-то тут пиздит
>вызываемый сервис не может отличить когда к нему стучится внутренний клиент, а когда внешний
То что ты дебил это половина проблемы. Важно то, что ты воинствующий дебил который продолжает всем демонстрировать это.
Лучше закрой пасть и почитай про авторизацию, про фаерволы, АПИ гейтвеи, глядишь и поумнеешь но это не точно.
Ну да, это тест на апишку на твою. По сути весь веб слой с диспатчер сервлетами и прочим говном мокается.
Может по клиентскому сертификату и ебле с JWT и подписями. Или у тебя сервисы работают без аутентификации?
Никто не спорит, что для межсервисного взаимодействия есть куча вещей получше, чем рест. Но все равно в подавляющем большинстве на деле это рест.
Рест - лучший способ превратить микросервисы в распределённый монолит, где временная недоступность одного сервиса приводит к ломанию половины функциональности.
> в подавляющем большинстве на деле это рест.
Это лишь означает, что в подавляющем большинстве на деле микросервисы суют туда, где лучше работают монолиты.
Ну и поебать, даже если распределенный монолит(а ты шизишь, ни в одной книге по микросервисам не написано никогда для взаимодейсвия не использовать рест). Распределенный монолит удобнее как минимум независимым деплоем. И уже за это его стоит тащить в проект.
там же по сюжету из за монолита эти вебмакаки в космос полетели, а последний выживший и вовсе стал РНН господином
Во всём не прав. Во-первых с каждым годом твои деньги горят из-за инфляции, во-вторых - покупка квартиры в Воркуте блять. В-третьих не прав потому что не тратишь деньги, а копишь на старость видимо. Ну анальничек, хули с тебя взять. Копи-копи, как помрёшь - всё достанется пыньке или его дочурке.
Я не коплю, я просто не знаю куда тратить. Всё что нужно было мне уже купил. Щас бы той самой горящей жопы, как в молодости, я бы всё въебал в какой-нибудь амбициозный проект.
Можешь мне что-нибудь прикупить.
Да хоть 1С-ник. Если у тебя нет технических вопросов, то тебе здесь не место.
И в чём проблема квартиры в Воркуте? Рай на земле, по моему. Никакого жаркого лета, дешёвые квартиры (халявные почти что), а больше двачеру и не нужно.
Анус себе зарепорть, долбоеб.
*тебе
Ну ма.
Широко известный в узком кругу лиц, Евгений Борисов периодически выступает с докладами, в которых разбирает устройство Spring по кусочкам. Делает он весьма весело, задорно и понятно. Рекомендуем приобщиться к его докладам:
Spring-потрошитель;
Spring-построитель.
- так вот потрошитель это видос от 2014 года. Ниче, что 8 лет прошло? Или всё ещё актуально?
Пару часов шерстил btdig и гугл.
Юмор в том, что именно этого курса на юдеми нет - он заархивирован.
Вместо него предлагается ебашить, видимо, по бутовому курсу на 100500 часов.
БАЗА ведь не поменялась.
https://www.oreilly.com/library/view/kafka-the-definitive/9781492043072/
Первые 6 глав за глаза, если ты разраб и нужно чисто консьюмер-продюсер апи.
Ну и спринг-кафка
https://www.youtube.com/playlist?list=PLa7VYi0yPIH1Su3nVNuRePh2Gdw6_UujU
Дальше сам читаешь доку кафки и спринг-кафки по непонятным вопросам, ну и статьи от гуру.
>Что за курс?
Spring Core - Learn Spring Framework 4 and Spring Boot
>Кто автор?
John Thompson
>Тоже может гляну на досуге
Да вроде он неспроста заархивирован — судя по темам, покрывается курсом Spring Framework 5: Beginner to Guru
Но вангую, что в последнем может быть сильнее, чем нужно, урезана тема XML-конфигурации, да и по представленным темам там больше часов, что может помешать получить нужное быстро.
Так же вангую, что мне мог бы помочь статический айпи, чтобы его догрузить, но не факт (вроде трекер сообщает о трёх сидах, а коннектятся только 2. Возможно у третьего как раз есть весь контент)
Потрошитель --- действительно нетленка. А вот построитель --- унылая НЕХ. Борисов --- крайне годный чел когда нужно понять как устроен спринг изнутри, и как работают все эти сраные аннотации под капотом. Но вот когда он начинает попутно касаться тем дизайна, SOLIDа там всякого, поддерживаемости --- просто скипаю. Такую дичь порой несет, что моск в трубочку сворачивается от этой шизофазии. В построителе такого было навалом.
Впрочем, справедливости ради, в построителе интересно было послушать исторический референс про жизнь до DI контейнеров, и всякие ObjectFactory.
Спасибо) Лю :)
Мiкроiiфт скiзiв.
Бля, а я думал дата жопа позволяет только писать декларативные методы репозитория и все, ну лан теперь буду знать
>>Евгений Борисов
>>Делает он весьма весело, задорно
это так
>>и понятно.
только если ты хотя бы джун+, а лучше мидл
>>Ниче, что 8 лет прошло? Или всё ещё актуально?
БАЗА спринга все та же
Я вкатыш и понимаю 95% того, что говорит борисов. Получается на собесах мне просить зп как у мидла?
Просить зп надо всегда как у мидла (в общем случае - всегда в полтора хотя бы раза больше, чем то, что тебе кажется).
А кто прошёл менторинговый курс Немчинского сразу на сеньёра идут.
че там учить то? тровабл - главный, но ловить его смысла нет, ерор - тебя не ебет, эксепшены - убут и в общем случае его и ловишь, от эксепшенов есть один нормальный - рантайм и вся остальная пораша, на которую надо вешать @SneakyThrows
> А если надо работать с файловым вводом/выводом?
То ловлю эксепшен и оборачиваю его в рантаймЭксепшен.
>>А если спросят куда относится арифметикЭксепшен?
Ни разу такую хуйню не спрашивали, но у тебя все равно шансы 50 на 50. На собесах скорее спросят чем отличается чекед/анчекед и что нибудь про трайс ресурсами кетч файнали.
+++
А по подробнее можно, какого уровня пет мне высрать, чтобы можно было его упомянуть? Вряд ли дефолт круда с интерфейсом из нулевых будет достаточно
Будет достаточно.
>Указывать ли мне ссылку на гитхаб в резюме
Хуже не будет
>какого уровня пет мне высрать, чтобы можно было его упомянуть
Найди и реши какую нибудь проблему. Так, чтобы оно хотя бы тебе самому было полезно.
>гитхаб
А как ещё выделиться вкатуну если ты не выпускник профильного вуза?
>проект в портфолио?
У меня было стандартное crud-говно (спринг + хибернейт) с минимальной логикой и регистрацией. На собесе вопросы по проекту.
А выделиться вкатуну, если ты выпускник профильного вуза? Вышка у каждой первой уборщицы есть
Нормально сделано, иди попыт пожми, поридж.
>как устроен спринг изнутри
А че там понимать, он же кондовый как дерево.
Декомпилированый код глянул и все.
Я имел ввиду последние курсы или вот-вот выпустившихся технарей по профилю. На них больше обращают внимания и охотнее берут на всякие оплачиваемые стажировки и джуновские вакансии. Меня пару раз заворачивали со стажировок от крупных галер из-за отсутствия вышки.
Созда пет и указав ссылку на гит ты дашь работодателю понять что ты просто безамбициозный технарь-задрот, используемый для затыкания дыр. Резюме уважаемого человека должно вызывать у работодателя некоторый трепет и дрожь в коленках, чтоб у него в голове сразу возникал план как извиняться перед кандидатом за то, что осмелились пригласить его на собеседование.
В мавене все транзитивное по дефолту сосётся, значит ты недочитал гайд где сказано что такие-та зависимости не транзитивные, надо добавить вручную. Вообще стоит отскочить тогда назад и освоить элементарно создание проекта например, прежде чем в спринг лезть.
А может ты просто читать не умеешь?
>Он не читаемый
Тут то как раз вообще вопросов нет.
Загляни в код компилятора эклипс, там вложенность if-ов такая, что на два экрана вправо надо перематывать - вот это рили пример кринжа
Сделай CRUD проститутошную.
Сделай комбо-бокс с кладром
> Если уж оф. разрабы джавы не могут в нормальный и читаемый код, то что уж говорить о тех кто пишет на джаве?
Что о них говорить? Лучше ничего не говорить, чтобы случайно не оказаться долбоёбом.
Спойлер - люди, придумавшие человеческие языки, были тупее тех, кто их использует.
Назови мне хоть 1 пример где разраб языка популярного оказался тупее разработчика на этом языке и я поверю
Интернет магазин аля озон, клон хедхантера.
ИМХО интересный пет проект и на джаве - вещи несовместимые, хотя зависит от того, что считать интересным...
Ну здесь хотя бы код читаемый. Зайди посмотри сорцы C++ STL, если хочешь настоящий концентрированный пиздец увидеть
Зависит от определения тупизны.
Да почему.
Лично я ни на одном динамическом языке не смогу написать в одно рыло что-то, чтобы оно было интересным, потому что интересное - значит достаточно большое, а достаточно большое на динамикобожественном языке - значит нереализуемое в одиночку.
Остаётся джава и шарп из числа тырпрайз языков. Гошку не считаем, т.к. лично я (опять же) не особо понимаю какой интересный пет на ней можно написать.
Шарп кстати пизже джавы в плане петов, во многом потому что юнити (а кто не хочет сделать игру).
Чтобы посмотреть и сказать, что нихуя интересного, да и заодно обоссать за ломбок и градл.
>Он не читаемый.
Ох уж эти люди, рассуждающие о читабельности...
Это то как раз эталон читаемого кода, внезапно, без шуток. Вообще не важно сколько там кейсов свича и вложенных друг в друга блоков. Важно что все это непотребство сокрыто за вполне себе компактной читаемой сигнатурой метода, из которой сразу понятно что этот метод просто трансформит массив в строку, проходя вглубь. Тебе с 90% вероятности и не придется читать эти свичи, потому что читая клиентский код ты просто встретишь вызов deepToString и сразу из названия поймешь о чем речь. Оставшиеся 10% --- это если там бага, но такую сигнатуру и тестить удобно.
Если уж хошь набросить на нечитаемость --- чекни спринг и его нутря. Вот уж где хтоническая ублюдочная ебанина из абстракций. Классы в нем как будто коллекционируют в своем имени название дизайн-паттернов. AbsctractSingletonObserverFactoryЗалупыBeanБля.
>потому что читая клиентский код ты просто встретишь вызов deepToString и сразу из названия поймешь о чем речь
Ну вот когда увидел этот метод - я пошел гуглить что он делает, потому что его название нихуя никакой конкретики не несет.
>deepToString
>глубина в строку
Ну как грица держи в курсе. Лан джавадебил, я спать. Завтра поругаемся и будем решать чей кал вкуснее. Спокойной ночи
Читаешь про синтаксис JS на каком-нибудь learn.javascript.ru, скипаешь детальные описания приведения типов и всякую хуйню, вроде что будет при сложении undefined и NaN, затем ищешь про функцию fetch(), JSON.stringify(), JSON.parse(), и больше тебе не нужно ничего.
Спасибо
а нафига?
для простого фронта нужно просто взять какой-нибудь простой фреймворк с ui kit,и забыть про сраный js, как язык
если чел привык с шарпам/джавам, то ангулар хорошо заходит
если питоны/рубя/пыхи, то что-то вроде svelte
(react бекам вообще не заходит, а вью - говно по-умолчанию)
проходишь туториал, адапртируя к совему сервису, попутно решая вопросы с помощью so, и вот современнный фронт
> забыть про сраный js
Хуй знает, как это вообще возможно, если вместо простенького фронта надо глубоко окунаться в канализацию JSX, вебпаков, нпмов, бабелей, тайпскриптов, размазывать на десятки файлов то, что без фрейморков пишется в 50 строчек в одном HTML-файле. Любые фреймворки нужны для крупных проектов, чтобы говно не слишком сильно растекалось, в простеньком фронте это из пушки по воробьям тем более для тех, кто испытывает патологическое отвращение в JS.
https://www.youtube.com/watch?v=b_tdqGM4_sE
Пятачок, ты оборзел. Откуда тебе знать, что ВСЕМ заходит а что нет?
не согласен.
js - говно. в котором копаться - себе дороже.
но в то же время, если взять фреймворк, у которого есть требования к расположению файлов, то собственно js перестает отсвечивать.
те же классы, те же ивенты, простого немного другой синтаксис.
если пытаться сделать то же без фреймфорка, то будет пиздец, где придется разбираться с тем, как работают ивентлистнеры, всплытия, асинхронность, порядок загрузки, отличия браузеров, когда к чему можно подписаться, и ... хз, в общем куча js и фронт related говна.
> придется разбираться с тем, как работают ивентлистнеры, всплытия, асинхронность, порядок загрузки, отличия браузеров
Никогда не придётся в простеньком фронте.
для двачеров это нетипично, но в офисе в курилке приходится общаться с другими.
вот и вынес общие ощущения о том, что людям заходит.
angular очень похож тырпрайз.
смешивание шаблонов и логики и налет функциональщины отвращает от реакта.
вью мне не нравится, кривой ангулар,
svelte - локоничный и понятный.
ну какой заслон? алгоритмы максимум на пару недель дроча литкода
и минигрантия для компании, что долбоеб-разраб не будет писать квадратичную сложность там, где возможна логарифмическая
Заслон от курсодебилов, которые не справятся со своими трудовыми обязанностями. Надо просто потратить чуть больше времени на изучение алгоритмов, а не нетерпеливо бежать на собес сразу после запустившегося спрингбута.
> алгоритмы максимум на пару недель дроча литкода
В таком случае согласен.
> не будет писать квадратичную сложность
Огромному количеству людей просто похуй, даже если они знают алгоритмы, за это никто не похвалит и премии не даст. И вообще ситуации такие возникают не далеко каждый день.
>>32236
>Заслон от курсодебилов
Крудодебил и курсодебил братья навек)
>бежать на собес сразу после запустившегося спрингбута
Боишься, что барин осознает, что вчерашний курьер из Деливери Клаб способен делать твою работу?
В целом удивлен скоростью ответа в тематике, даже в /po лахта и ципсо не так оперативно отвечают.
> Боишься, что барин осознает, что вчерашний курьер из Деливери Клаб способен делать твою работу?
Наоборот не боюсь. Почитаю здешних шизиков и совершенно не переживаю о конкуренции.
Ну пиздец и пиздец, тебе это читать что ли? Ты это байтоебсое говно и не увидишь никогда.
>>должно вызывать у работодателя некоторый трепет и дрожь в коленках
Ты не разбираешься в кабанах. Нельзя испытывать трепет к нижестоящему, это физически невозможно. Ты ж не испытываешь трепет перед рыбиной которая клюнула на крючок и ты вот-вот ее вытянешь на берег. Будет максимум - азарт, ощущение что это ты молодец, подцепил такого кадра.
>>извиняться перед кандидатом
Какие то омежные проекции у тебя. Он же его не боссом своим просит стать, чтоб тот его компанию из говна вытянул. Программист - обычный работяга, как охранник или грузчик, только чуть полезнее и дороже.
>>в офисе в курилке приходится общаться с другими.
Я не курю, но иногда хожу с коллегами-наркоманами в курилку, чтоб обсудить что то, когда их прижимает, а ждать неохота. Не помню чтоб за эти разы в курилке разговаривали не те, кто туда пришел вместе. То есть придут пятеро одиночек - все будут просто молча курить, а потом пойдут назад.
>>алгоритмы максимум на пару недель дроча литкода
Зачем тогда спрашивать алгосы у вкатуна, который ближайший год не прикоснется к коду, где они могли бы понадобиться?
Он скорее всего будет валидацию развешивать, опечатки исправлять, круды простенькие делать, а все сложные и интересные таски, тем более требующие знание алгоритмов, отдадут мидлам и выше.
>>не будет писать квадратичную сложность там, где возможна логарифмическая
1 - есть ревью
2 - похуй, если стек не байтоебский и нет больших данных. лишний запрос в базу сведет на нет все твои локальные оптимизации.
>>должен справиться с этим самостоятельно, а не бежать к сеньору
Ты думаешь вкатун не сможет погуглить как это решается самостоятельно? Не помню чтоб меня вообще хоть кто то учил, пока был ждуном. Кидают задачу - ебись как хочешь. Максимум - можно спросить какой вариант из нескольких подходящих подходит лучше в конкретном проекте, но частый ответ "решай сам"
>>29365
>>бизнес-логика, для неё нет готовых библиотек, которые можно переиспользовать, нет типичных подходов
Если первый раз что то в проекте пишется - то не надо давать это ждуну, если что то подобное уже было - джун сможет скопипастить решение и подогнать под задачу. Так он и научится заодно правильному подходу.
Анон видимо хочет, чтоб ты не вкатился.
Стримы используют всегда, по ним и на собесах спрашивают часто. Лямбды в чистом виде реже, но тоже понимать надо. А то попадешь на реактивный стек и не будешь понимать что происходит.
Но там и сложного ничего нет, просто немного другой синтаксис.
> Анон видимо хочет, чтоб ты не вкатился.
Зато хочет, чтобы в шарпе было овердохуя вкатышей, как в питоне, чтобы были тысячи человек на место.
Всё это должно быть через kafka. Как это лучше сделать? Мой вариант - Сервис 1 должен слать сообщение с пустым value, Сервису 2 похуй на value, он просто подписан на топик, и увидев что-то новое в топике, сформирует данные и вышлет назад?
Мне кажется, это должно быть не так реализовано, посему реквестирую "как надо". Как сервису 1 сказать сервису 2, что мне нужны от тебя данные, при этом никаких параметров или данные при реквесте сервис 1 не передаёт?
жесть
Так я не про собесы, а сам язык и практику спршивал, чтобы получить ответы в духе "да, это сильно облегчает жизнь и с кодом приятно работать впоследствии" или "нет, это полный кал, создает большие проблемы в будущем".
Поясню что имел ввиду. Я передаю в bindingResult с валидатора эрор_реджект и через проверку ифа он должен выбрасывать метод ExceptionManager внутри которого инфа с bindingResult должна закидываться в разные (в зависимости в каком методе контроллера все происходит) исключения. И собственно вопрос в том, как в методе ExceptionManager бросать не через throw new куда можно закинуть только одно исключение, а шоп метод динамически выбирал какое исключение надо бросить.
ебать как даун пояснил конешн, но шо поделать
>И собственно вопрос в том, как в методе ExceptionManager бросать не через throw new куда можно закинуть только одно исключение, а шоп метод динамически выбирал какое исключение надо бросить.
В throw можно просто передать заранее созданный объект.
throw createException(1);
private Exception createException(...) {
...
}
А так, почему бы в самом методе валидации и не кидать экспшн?
Так тебе и ответили что это отраслевой стандарт, ты б еще спросил нужно ли спринг учить.
>Всё это должно быть через kafka.
Зачем? Кафка нужна если требуется персистентность или асинхронность, а у тебя тут чисто синхронное взаимодействие. Юзай REST а лучше gRPC.
Ты работать за деньги хочешь или для себя (причём без перспективы нанимать людей чтобы они работали на твоих проектах)?
Если 1 - то это отраслевой стандарт, это надо знать.
Если 2 - то вообще пiхуй, хочешь юзай не хочешь не юзай. Твоя жизнь - твои правила.
В чём ебанутость на конкретном примере?
Только вот само содержание сообщения которое будет в экспшн генерится внутри метода ExceptionManager.
И что мешает из валидатора вызвать ExceptionManager чтобы он просто сгенерировал сообщение? А еще лучше сделать отдельный класс для генерации сообщений.
В крайнем случае можно из валидатора возвращать функцию Function<String, Exception> на вход сообщение, на выход готовый экспешн. Но это уже костылинг
>А еще лучше сделать отдельный класс для генерации сообщений.
Ну кста неплохой варик
Спасибо, анон
>Босс сказал - учи кафку
Спроси его зачем нужна асинхронная коммуникация. Что делать с таймаутами и ретраями? Что должен делать сервис 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 фаза
копируем из прошлой фазы нужный артефакт и запускаем
Но звучит как пиздец же, пусть докер там что-то и кеширует.
8 хватит. Возможно и на 4 что-то делать, но это прям минимум. И ещё SSD нужен.
>>Модули используют друг друга. Каждый модуль хочется развернуть в отдельном контейнере.
вынеси общий код в отдельные модули
zalupa1-api
zalupa2-api
и тп
Там не нужен мейн класс, это просто либа - код + пом,хмл
версию лучше оставь что-нибудь-снапшот, чтоб каждый раз при сборке либа заного собиралась (иначе охуеешь от версионирования либ)
Если там вызовы друг друга - сделай общение либо по ресту, либо по кафке как в стороннюю систему, чтоб они могли собираться независимо друг от друга.
>>Но звучит как пиздец же
ты сделал распределенный монолит в худшем его виде
переходите на раст, хоть людьми себя почувствуете.
> Как сервису 1 сказать сервису 2, что мне нужны от тебя данные
Это весьма хреновая постановка вопроса, она сама по себе ведет к пиздецу, который люди часто называют "распределенным монолитом". Обычно, когда бьют систему на микросервисы, стремятся делать это так, чтобы один сервис о другом ничего не знал, и как частный, не коммуницировал с ним напрямую. Вместо этого Сервис 2 просто шлет сообщения о том, что в нем происходит (не парясь о том, слушает ли их кто нить или нет). А сервис 1 просто слушает мессаги (не парясь о том, придет ли туда по факту ченить или нет).
Читал твиттер (или что-то другое) пидораса чулочника о правильной поддержке эмодзи-краба в сурсах раста или что-то такое. Так что раст для пидорасов.
>смешивание шаблонов и логики и налет функциональщины отвращает
Напрасно. Хз че там у реакта с экосистемой, но идеология чистого реакта весьма хороша. Джавовый тырпарайз был бы в разы менее кровавый, если б этот ебаный стиль с классами-сервисами и автоварями сдох нахуй вслед с EJBями. И ангуляру мимикрирование под этот стиль не очень идет на пользу.
Сербул, ты?
Спс антош а что в докер для сборки класть в таком случае?
Родительский pom, модуль + модуль-api?
Да, я так на одном собесе обосрался когда речь зашла про женерики и стирание типов.
Я не учил, на собесах не спрашивали, просто знал что такое дженерики и для чего нужны. Когда появилась таска, где они понадобились - просто погуглил немного и все сделал.
Можно напрямую.
P.S. - Алгоритмы и структуры данных...
И за каким хуем ты это высрал? У тебя тут ни одной сортировки нет, да и не ясно, ты структуры просто смотрел или писал сам по несколько раз без помощи лмстинга. Хоть удаление из красно-черного осилишь без флагов из делетед?
Так вконтакте и появился на свет
На проде - лет через 5. Сначала должен спринг 6 выйти, потом придется вебфлакс чинить для работы с лумом.
{
//тут какие-то поля
"объект класса В": {
//тут какие-то поля
"объект класса С"
//тут какие-то поля
}
}
и нормально его разложить по классам А, В, С и потом передать их в бд. Вот одинарный json получается, а комплексный не идёт. Буду признателен.
Доступен для скачивания.
Никак.
Я для себя идеологию реакта увидел так: компоненты в реакте объединяются по принципу "вместе должно быть то, что переиспользуется как одно целое" (ключевое слово --- "переиспользуется"). В отличие от тырпрайза на бинах, где в бин объединены просто рандомные процедуры по типу "если эта логика работает с юзером, значит она должна быть частью UserService".
У фронтендеров эта очевидная идея лежала на поверхности --- всегда была реальная потребность реюзать однажды спроектированную, отстилизованную кнопку или текстовое поле в разных местах интерфейса. Долгое время не было только фреймворка под нее. В бэке эта идея в разы менее очевидная, потому что вместо интерфейса у бэкендеров обычно --- АПИ, где переиспользовать нечего. Наверное поэтому бэк и подряз в этом в сервисно-биновом непотребстве. Но и на бэке такой майндсет был бы тоже в разы более эффективен, потому что в конечном итоге именно тот код, который переиспользуется вместе, и является наиболее сплоченным (cohesive).
32 минимум! Ты же, когда кодишь, не только в идее сидишь. Для максимальной скорости кодинга надо иметь возможность открывать очень большое число окон и программ.
>>по принципу "вместе должно быть то, что переиспользуется как одно целое"
>>переиспользуется как одно целое
>>В отличие от тырпрайза на бинах
Я нихуя не понял. Где и как они хранятся и чем это лучше внедрения зависимостей из контекста?
Что мешает точно также создать эту кнопку, поместить "ссылку" на этот кусок кода в контекст, а потом вставлять в нужных местах указав эту самую "ссылку" на кнопку из контекста вместо написания с нуля?
>>вместо интерфейса у бэкендеров обычно --- АПИ
вместо интерфейса у бэкендеров бизнес логика
>>где переиспользовать нечего
ООП построено на переиспользовании кода
>>тот код, который переиспользуется вместе
Что значит "вместе"? Чем это отличается от переиспользования кода "не вместе" ?
32 ты загнул конечно, мне 16 хватает для открытия 3 петов в идее и 3 окон в гугле с овер 25 вкладок. 8 было мало, 4 как пишет анон, имхо вообще пиздец. А на галере можно попросить норм ноут подогнать, знакомым макбуки выдавали
https://pastebin.com/E4MEhZFy
Может получится.
Мне мега лень ради пары торрентов регать российский впс (свой зарубежный наверное не смогу оплатить) или ебать тп провайдера, чтобы дали статик.
там депрекейтед курсы жирного по спринг кор
Добавь сюда ещё корпоративный месседжер на электроне, 5-7 контейнеров докера, корпоративные зонты. Может второй браузер. Плюс в идее пожирание оперативы зависит от числа плагинов и того, как ты ты их используешь.
Я вот из под винды работаю. Тут всл + антивирусы + доп зонды + сама винда. Только это все вместе гига на 3 больше жрет
Я что должен отслеживать все политики всех говносайтов?
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
>> Клон жаба треда с прикрученной регистрацией норм для проекта в портфолио?
Так че норм или залупа? Или эта хуйня слишком много времени займет? В теории там все просто должно быть
если трудоустраиваешься в 2001, то норм
Уходи.
На шарпе.
Поиска офк. Но для работы требует сортированного массива.
Это была проверка.
>>33063
Короче помимо этого раскукожил чайлд модули, убрав из них секцию <parent>. Стало намного пизже. Американец на стековерфлоу сказал ты что долбаеб, контейнеризируют не отдельные модули, а ПРИЛОЖЕНИЯ.
Только теперь всякие ломбоки, junit-ы, и миллион других повторяющихся зависимостей приходится копировать N раз. Даже хуй знает как это пофиксить.
И зачем нужен родительский пом, в котором прописаны
<modules>
<module>zalupa1</module>
<module>zalupa2</module>
<module>zalupa3</module>
</module>
Если в самих модулях нет ссылки на родителя?
Подключаю базу данных, если использую Environment и propeties(вариант этого подключения в комментах) то получаю:
Failed to obtain JDBC Connection; nested exception is org.postgresql.util.PSQLException: FATAL: password authentication failed for user
Если подключаюсь просто без propetries то все работает. В чем может быть дело?
В гугле нашел только инфу по изменению pg_hba.conf, но не помогает
>>контейнеризируют не отдельные модули, а ПРИЛОЖЕНИЯ.
Ты уж определись что тебе надо монолит или микросервисы.
>>зачем нужен родительский пом, в котором прописаны
>>самих модулях нет ссылки на родителя?
Надо было спросить того чела что тебе посоветовал все в один контейнер засунуть
>>Если подключаюсь просто без propetries то все работает. В чем может быть дело?
Видимо куда то не туда свои енвайронменты прописал.
Фронтенд-макака не добралась до шаблонов проектирования
Я решил
у меня параметр с именем был username и спринг подтягивал имя системы вместо того что бы брать переменную из файла properties
Бизнес-логика действительно часто пишется в стиле, близком к процедурному. Само по себе это не плохо, и ничем не мешает переиспользованию кода. И это необязательно означает, что у тебя будет один условный UserService сервис как сборник не связанных между собой процедур. В реалистичном нетривиальном случае будет какой-то сложный бизнес-процесс, в котором задействован и User, и много чего еще, и бин-сервис может быть "посвящен" этому процессу, а не отдельной сущности.
Потому что bean-компонент — это объект, который создается, собирается и управляется контейнером Spring IoC.
Тут все понятно. Теперь надо просто понять, чем объекты отличаются от процедур. Так что тот анон сделал очень правильное уточнение.
> Потому что bean-компонент — это объект, который создается, собирается и управляется контейнером Spring IoC.
Это ответ из книжки. А в действительности в контейнер суют процедурные модули, и не важно, что они реализованы как объекты классов.
Я же не говорю, что это плохо. Просто не надо это называть ООП.
Это ответ из доки спринга. Для меня, как спринг-конфигуратора дока - это источник истины.
Если у тебя есть опровержение - аргументируй, почему бины это не объекты, а процедурные модули.
Наверное, HeadFirst
Вот и LINQ спиздили наконец-то.
Сейчас на jvm скрипты пишут на котлине (лол)
Груви не считается.
Мимокрок
Да вот забавно все с бинами и контейнерами на самом деле.
С одной стороны, как физически, так и с точки зрения IoC контейнера бины --- это объекты (если понимать под объектами инстансы классов, и не упарываться по чистоте ООП). Но IoC, помимо внедрения зависимостей, делает обычно еще одну важную вещь. Управляет скоупом и жизненным циклом бинов. Какие то бины живут в скоупе реквеста, какие то --- привязаны к сессии, какие то воообще --- прототипы либо синглтоны.
И вот что забавно - кучу тырпрайза на джаве пересмотрел, и обычно типичным сервисным бинам вообще скоуп и жизненный цикл нерелевантен. Семантически --- вообще насрать, создаст контейнер один юзер сервис, или по одному на, скажем, запрос, потому что обычно такие сервисы дизайнятся stateless. Если подумать об этом побольше, выходит что scope и lifecycle --- вообще понятия, применимые лишь к стейту. Это для стейта важно определить, кто его видит и сколько он живет, для стейтлесс вещей оно не имеет никакого смысла.
Учитывая вышесказанное, решительно непонятно, нахрена засовывать стейтлесс бины (коими является подавляющее большинство типичных спринговых сервисов на джаве) под контейнер. Бенефитов от этого действа --- копейки (сэкономили чуток на вызове конструктора и аллокации обьекта, вау). С точки зрения поддерживаемости --- одни недостатки, так как полноценно переиспользовать свою биновую бизнес логику ты можешь только пока она мэнеджится контейнером. Более того, переиспользовать отдельные процедуры из бина невозможно отдельно от бина, из-за чего бины и называют сборником процедур, а автовари --- аналогом инклюда в сях.
Хз зачем это все было надо, хуйня какая то имхо.
Внедрение бинов - это замена синтаксиса new HyinaService(param1, param2, param100500) или даже HyinaServiceАbstractFabriс.createHyinaServiceFabric().createService()
То что ты в сам бин засунешь - уже твои проблемы. То что все пишут трехслойную архитектуру с сервисами не имеет отношения к самим бинам как таковым.
ЭТО ДРУГОЕ!
Ну просто вроде если если использовать в нем jwtFilter то потом в секьюрити все(сервис, фильтр, спрингсекьюрити) залетит в цикл
>>сэкономили чуток на вызове конструктора и аллокации обьекта
>>чуток
Ты охуешь каждый раз вручную дерево зависимостей строить и переписывать все конструкторы при небольших изменениях в логике или архитектуре
>>С точки зрения поддерживаемости --- одни недостатки
Очень сильное упрощение архитектуры еще и вкат упростило, там где раньше нужны были сеньки, сейчас джуны под контролем мидлов справляются. А это снижает издержки для бизнеса.
Если ты про память и скорость запуска - то спринг не сложно заоптимизировать до уровня чистой жабы, только это редко когда реально нужно
>>только пока она мэнеджится контейнером
То есть всегда
>>аналогом инклюда в сях.
Аналог иклюда - это импорт статичных методов.
>>сборником процедур
между набором обычных и статичных методов все же есть разница
>>Хз зачем это все было надо, хуйня какая то имхо.
Для этого надо вернуться на 20лет назад, пописать много интерпрайщного кода на чистой жабе, потом переписать это 10 раз под изменяющиеся требования, тогда и станет понятно зачем спринг нужен.
Спринг это кстати не только про контейнер, он еще и интегрирует дохуя всяких либ, избавляя от необходимости проверять их совместимость и работоспособность.
И шарп там так себе, только если синтаксис там выучить.
>Ты охуешь каждый раз вручную дерево зависимостей строить и переписывать все конструкторы при небольших изменениях в логике или архитектуре
Разумеется охуею, потому что количество транзитивных зависимостей сервисного бина (и как результат --- автоварей) может легко достигать овердохуя. А все из-за того, что типичный бин структурно --- именно что пучок процедур, хоть и оформленный как класс. Процедур, которые могли бы быть и переиспользоваться отдельно друг от друга, но вместо этого находятся в одном классе, раздувая тем самым его количество зависимостей. По той же причине я и говорю, что реюзать бины без контейнера --- практически невозможно.
Если бин побить на более гранулярные кусочки, у каждого из них количество зависимостей было бы ограничено лишь его непосредственными потребностями. И аллоцировать их вручную будет не так уж и сложно. Проверял лично на проде.
Все остальное --- стереотипы спрингокультистов, неинтересно. Кроме разве что:
>Спринг это кстати не только про контейнер, он еще и интегрирует дохуя всяких либ, избавляя от необходимости проверять их совместимость и работоспособность.
Это да, это действительно оправдывает существование спринга. Но не сервисов.
>бин побить на более гранулярные кусочки, у каждого из них количество зависимостей было бы ограничено лишь его непосредственными потребностями. И аллоцировать их вручную будет не так уж и сложно. Проверял лично на проде.
звучит прохладно. То есть 100 твоих бинов + 500 транзитивных превратится в 1000 твоих модулей, которые надо руками создавать создавать. Зависимостей будет меньше, но так как модули будут меньше, то транзитивных модулей будет больше. Скажем 1500.
Посмотрю я как ты это руками разрулишь.
Да и пиздеж это, что скоуп с состоянием никогда не используется. Сам видел и ревест и сессион скоупы. Да, их 1%, но возможность их использовать нужна.
>ginq
>Посмотрю я как ты это руками разрулишь.
Нормально разруливается. Не понимаю о каких тысячах ты говоришь. За счет более активного реюза кода этого кода впринципе меньше, чем в бинах. Более того, работает как со спрингом, так и без. Юнит-тестится без spring test и развертывания контекста. Охуенно вообще.
>Да и пиздеж это, что скоуп с состоянием никогда не используется. Сам видел и ревест и сессион скоупы. Да, их 1%, но возможность их использовать нужна.
А я разве говорил что они не используются? Я говорил ровно то же, что и ты --- что компонент, для которых действительно оправдан менеджмент скоупа и жизненного цикла, на практике несравнимо меньше чем компонент вообще. Тем не менее почему то люди кладут 99% бизнес кода под спринговые бины.
Ты видимо почему то решил, что я топлю против использования спринга вообще? Нет. Я критикую пучки процедур именуемые сервисами, и идею отдать на аутсорц контейнеру менеджмент всех зависимостей между компонентами. Не спринг. Спринг в моем мировоззрении --- отличный интеграционный тул, позволяющий за считанные минуты начертать порты и адаптеры к внешним системам. Но для бизнес логики он стремный, тут уж сорян.
То что легко реюзается лежит в статических переменных утил-классов.
Хотелось бы увидеть код с бизнес-логикой вне конетекста и как все это соединяется с внешними билиотекой, работающими через контекст и всякими контроллерами и подключениями к базе
Это javaFX.
Есть лист с объектами класса Account, по ходу работы программы у этих объектов меняется текстовое поле.
На этот лист я вешаю Observable засовываю в ChoiceBox "moneySendFromChBox", и по идее строчки в ChoiceBox должны динамически меняться в момент когда они меняются объектах листа. Но вместо этого строки начинают добавляться к предыдущим значениям поля, чому так?
Один хуй
Спасибо. Так пробовал, но File все равно ругается, что нет такого файла, почему так?
раздражает прямо этот пидорас, надеюсь проебет побольше времени и ничего не добьется. с
Что сказать-то хотел?
бэкграунд - по блату брали на проект джавистом, хотя на тот момент только базовый синтаксис знал. (с этим еще связана рофельная история, он мне рассказывал, что пройти собес вообще легко, найти работу расплюнуть, а затем сам же рассказал, как ему дружбан всё тех. собеседование слил заранее и ему нужно было только его выучить).
проект закрылся, погнали оттуда его дружка и его вместе с ним. (насколько знаю у него даже месяца опыта оттуда не накапало). еще его звали на пару проектов до 24 февраля. раньше работал небольшим начальником в кафешке. лет ему под тридцатник.
сейчас его дружбан и еще пару знакомых, по-сути все его знакомоства в сфере, уехали в гейропу. он остался один и хочет САМ найти работу. с такими-то требованиями лол.
учился под небольшим (просто советовали кого смотреть) менторством друзей по слитым курсам. но не всякое говно типо гикбреинс.
спринг ему ещё надо. а ты уже вкатился или только мечтаешь?
Мне даже интересно куда?
JDBC, Hibernate, Spring( Что ты понимаешь под спринг кор? Обычно спринг кор - бины, DI. IOC - и да, этого недостаточно). Spring MVC, Spring Data, Spring security, Spring Boot, Spring Validation, основы работы с Git и Maven/Gradle, основы тестирования.
Вот что смешно. Несколькими сообщениями выше был аргумент в копилку достоинств спринга, что, мол, со спрингом архитектура упростилась настолько, что там где раньше нужны были синьоры, теперь и джуна хватит. О чем, впрочем, сказать стесняются, так это о том, что планка входа со всеми этими спрингами, хибернейтами и микросервисами для джунов задралась настолько, что сами джуны теперь либо вкатиться не могут, охуевая от того сколько всего надо учить, либо стОят по деньгам как те же синьоры лет 10 назад.
Я такой стек обычно на мидлов/сеньеров вижу, хотя там еще плюсом идут всякие куберы, докеры и тп. Жесткие нынче требования, надеюсь хоть платят ждунам более-менее
ну просто уровень знаний в этих технологиях для ждуна ниже, чем для мидла. ну и ждун на то и ждун, что у него нету опыта промышленной разработки. а мидл имеет, значит без нагоняя и присмотра может выполнить задачу.
Много видел сервисов без единого инжекта? Я вот ни одного. Так что непонятно, про какой именно стейтлесс ты тут втираешь.
Полиморфизм. Буквально в этом месяце ковырял проект, где сам сервис инжектится как интерфейс с несколькими реализациями. Как интересно будет поживать твой код, когда вместо использования бина без задней мысли тебе придется ручками в контроллере выбирать из твоего пучка процедур разные реализации с разными зависимостями.
А про переиспользование двачую оратора выше, действительно стейтлесс код можно уносить в утил классы, оставив в бинах то, что не может жить без контекста этих бинов.
Чел, я по приколу, когда вкатывался писал круды на голом томкате, голом jdbc и без di. Пара связанных сущностей у меня заняли две недели. Потом я переписал это на спринг мвц с di и jdbctemplate. Количество кода упало в разы. И количество ошибок тоже. И это я еще не подрубал сваггер, логирование, внешние сервисы, секьюрити, валидацию, транзакции, адвайсы с эксепшонхенлерами и врапперами, очереди сообщений, интеграционные тесты, нереляционную базу, раннеры, шедулеры, кэшы.
Со спрингом я все это на каком-никаком уровне освоил от дня до пары недель. Без спринговых оболочек у меня ушло бы в разы больше времени и в разы больше кода, где я бы совершил в разы больше ошибок. Платят не за спринг, а за функционал.
Без спринга архетиктура даже небольшого тырпрайзного сервиса была бы охуительно сложной из-за кучи вовсе непростого бойлерплейта.
Слушай, ну я рад за тебя конечно, ты молодец, мотивированный чад и все такое. Разумеется понятно что со спрингом проще штуки делать чем без спринга, я не об этом. Просто щас стек настолько раздут, что на джунов же без слез не взглянешь. Даже от этого треда несет отчаянием людей в попытке вкатиться в джаву: "Что минимум надо джуну...", "Как вкатиться на стажировку...", "спринга хватит, или хибернет еще надо?...". И так везде, не только на двощах. Прям смотришь на них --- так и хочется их всех обнять, сказать им ченить доброе и поменторить.
Блин, я в 2007ом году с околонулевым знанием с++, без опыта, портфолио, знакомств и тремя курсами универа из пяти уже вкатился на оплачиваемую стажировку на парт-тайм, откуда через 3 месяца попал в джуны, где уже спокойно, в своем темпе изучал всякие штуки, попутно получая стаж и опыт коммерческой разработки. И это было тогда вроде обычное дело. Щас же порой челы, добравшиеся до собеса на джуна --- уже выгораны внулину.
Все таки учить штуки проще морально, когда вопрос с работой закрыт, нет?
Ну так расскажи что ты там мог в 2007 году написать с поверхностными знаниями плюсов.
У нас например для джуна уже через 2-6 недель онбординга нужно писать мр-ы, которые потом попадут в прод. Для стажера через 2-3 месяца.
И для этого нужно уже как минимум знать гит, спринг кор и веб, sql и junit. За недели онбординга придрачиваешься к орм или квери билдеру, докеру, тестам и прочим штукам.
добавил одну строчку с фильтром и уже рестартить
У меня стримы нормально хотсвапятся на вебсфере. Проблемы только со статик полями.
Скрипты на баше лабал для одной телеком подсистемы на солярке (баш учится за 2 дня). Те же МРы в прод (в те времена это был даже не гит, а clearcase, который с улицы все равно никто не знал и знать не мог, ибо проприетарная хуйня). Параллельно спокойно себе подтягивал с++. Затем с++, параллельно чекая, че там в джаве (в те времена это был еще Java EE). Шаг за шагом, проект за проектом, спокойный себе чиловый прогресс.
>>37786
>Не сильно проще, надо еще таски с крудами решать.
Так только кажется. На самом деле учиться сильно проще когда ты не один, а в кругу опытных челов, да еще когда к тебе ментор приставлен, и всегда есть кому тупые вопросы задать. По крайней мере так было во времена моего стажерства, щас вообще не удивлюсь если вкатуна еще и хуесосит заебанный майлстоунами коллектив (сам такое осуждаю).
>тебе просто печет что ты все это говно учил и хуи сосешь
пока что только ты мой хуй сосешь
>а чел просто берет и вкатывается
просто берет и вкатывается куда? в бесконечный цикл собеседований? ты такой же что ли экземпляр? или хули у тебя так сгорело
Но я московскую симку купил! А то раньше кабанам пришлось бы деньги тратить при звонке, кек.
Нет.
да
Но и замкадного тоже нет хвостокрутного.
Нахуя? Ты же в Чите живёшь, мань
Анон, как выгрузить строки/строку с БД не по айдишнику, а по строковому значению?
Я пробовал
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();
но оба варианта нихуя не возвращают.
В таблице данные есть.
Посоветуйте репозиторий, где есть круды посложнее стандартных с одной таблицей, чтобы несколько связанных таблиц.
Вопрос с запросом по строке снят, не знал, что в юрл нельзя японские символы передавать.
А вот репозиторий с кучей примеров был бы заебись.
Тредом ошибся.
Уже никак.
Умирающий распиаренный аналоговнет.
Ну сделай резюме далбич
Из этой тысячи - 800 таксисты и бармены с джавараша, ещё 150 - ебанашки, которые думают, что жаба и жабаскрипт одно и то же. Про спринг знает 50 человек.
И что ты предлагаешь? Срочно перекатываться в дотнет?
Почему ты недооцениваешь таксистов и барменов с джавараша? Если они прошли этот курс, то чем они хуже вкатунов из универа?
Универ по сравнению с джаварашем тоже --- ничто. Там может и обучают комплюхтерных саентистов, но они в индустрии нахуй не нужны. Нужны макаки на определенный стек, чтоб писать код уже сейчас, а не через пару лет стажерства.
Все так. Но почему то к студиозусам конторы более благосклонны чем к таксистам-джаварашерам. Не знаю почему так, навеное стереотипы.
Ты проходил жавараш? Я там брал ~30 уровень. Большая часть задач это бесполезная дрочь за твои деньги, после которй ты по сути ничего не можешь и половину забываешь. А на поледующей стажировке отваливается ~90% людей, потому что на жавараше их учили выводить в консольку, а теперь заставляют спринг конфигурацию. Лучше скачать и полистать Хорстманна и статьи в интернете.
>Хорстманна
Книга ужасная. Сухое изложение без примеров. Корявое объяснение. С одной стороны он пишет для знающих С++, но объясняет основы ООП, а с другой стороны не объясняет толком особенностей джавы, которых нет в С++. В итоге и для новичков книга сложная и для профи на других языках она не даёт ничего.
Да, я и есть тот даун который повёлся на рассказы что буду получать соточку через 3 месяца, ведь достаточно пройти 20 уровней на жавараше и решить 200 примеров.
>>39604
Тогда Head First Java. Она совсем для нулевых, после некоторого опыта можно уже приступать к Хорстманну скипая некоторые места.
Я около 50 откликов сделал на джунов, мидлов и сеньоров в разные галеры, стартапы и всю возможную хуету. Ответили только четверть стандартной копипастой. При том я не хуй, у меня активный гитхаб с разными моими тулзами на разных языках, со звездочками. Коммиты в попенсорс. У большинства такого даже нет. Вот что им нахуй еще надо от меня?
Надо чтобы твой высер в резюме подходил под их вакансию, дебс. Твоё резюме не доходит до собеса потому что его отсеивает HR по кейвордам, у неё spring, у тебя "знания spring framework", итд по списку. Смотришь вакансию - подстраиваешься чтобы понравиться HR, дальше уже по ситуации.
Раз 10 откликался, на один получил месседж на почту "решите задачку", я решил. Пригласили на собес, сказали "как бы ты улучшил свой вариант?", я сказал "ну хуё-моё туда-сюда" и меня взяли на галеру.
Получается из-за тупых HR и возникает эта проблема: фирмы плачутся, что нет программистов, а вкатуны не могут вкатиться?
Да, всё так.
> у неё spring, у тебя "знания spring framework"
Вот специально для хрюш выкладывал 2 дефолтные хуйни по спрингу, чтобы они увидели знакомые слова. Назвал большими буквами СПРИНГ+ХУЙНЯ_НЕЙМ. Не уверен что они вообще понимают на что в этом гитхабе смотреть надо.
> Смотришь вакансию - подстраиваешься чтобы понравиться HR
Даже хх.ру говорит надо рассылать минимум 10 откликов. А под все невозможно подстроится физически. Но вот с одной заявкой ты можешь сидеть месяцами в неведении, даже если тупо скопипастишь параграф про требования, пока она разберет 1000 кандидатов и проигнорит тебя в итоге.
Я хз как можно вкатится не по знакомству и если ты уже не студентота.
>не объясняет толком особенностей джавы, которых нет в С++
Хуя знает. Я после курсов с удеми и степика что-нибудь новенькое да подмечал.
Ну вот студентотой меня примерно так и взяли. Сменил статус на активный поиск, на следующий день позвонили, скинули тестовое и через неделю я уже был там. Без всякой хуйни и унижений. Но по глупости и джуновской нищете я выкатывался в другую сферу. Обратно теперь не пускают пидарасы.
27
Подскажите, ставить всё на красное изучения жабы? С будущей возможностью вкатиться в европу, там сейчас вроде тоже жаба популярнее, не считая швеции какой-нибудь
> ставить всё
Не бывает такого. Оба языка в ближайшие лет 10 не умрут (ни один популярный язык так быстро не умирает), и работы всегда хватать будет, даже если легаси. А потом всегда успеешь перекатиться, если что-то начнёт умирать.
С эстетической точки зрения оба языка говно, и вкатываться только ради работы и деняк.
>>Ты проходил жавараш?
Я не осилил, когда меня в самом начале попросили 3 раза подряд написать хэдлуворлд без возможности скипнуть - я бомбанул и пошел на курсеру. Хотя тимлид у меня учился на жавараше, лол (но тогда он вроде был бесплатным).
Но я имел ввиду не конкретный украинский сайт, а вообще все эти инфоцыганские курсы, юдеми и прочие ютюбы которые либо бесплатны либо есть на торрентах.
>>фирмы плачутся, что нет программистов
1 - им нужны ПРОГРАММИСТЫ, а не вкатуны вроде тебя
2 - они плачутся что нет ДЕШЕВЫХ программистов
> Жалко денег пусть нанимают вкатунов недопрогромиздов
> Жалко время пусть оплачивают настоящим ПРОГРАММИСТАМ их хотелки
Между этими точками бесконечное число компромиссов.
name.equals(person.Name)
Мне похуй, я не знаю синтаксис вашей рыготни, но видел пару раз и представляю что он из себя представляет. Не зря индусы писали на нём, ведь столько кода можно нахуярить на пустом месте.
В шарпе то? Ну вот List::Count это метод или свойство? Вот и проверяй потом по 2 раза обратился ли ты к переменной или вызвал метод.
Типичный евангелизм-шарподемагогия.
C vavr'ом то же самое будет. Не говоря уже о том, что даже без вавра код можно было бы сократить стримами.
Дебс, свойство - без скобок (), метод - со скобками. Или у вас метод и свойство не могут одинаково называться? Лол.
Пф. Ну тогда я щас тоже твой oneliner на шарпе в цикл разверну и начну хуесосить. А хули. Мне тоже похуй, я не знаю синтаксис вашей рыготни)
Ты сначала на джаве научись писать. Мало того, что про StreamAPI не знаешь, дак ещё и процедурный код с ошибками.
>>пишет говнокод
>>виновата джава
list.stream().filter(String::getName).findFirst().orElse("default");
Синтаксис обращения к свойству такой же как к полю класса. И когда ты думаешь что обратился к полю, по факту происходит вызов метода, в котором могут происходить нежелательные действия. Ладно лист каунт оптимизирован для такой хуйни, но каждый десятый еблан будет говнокодить что нибудь типа person.Parent - где в теле свойства будет FindParentByChild(id) или подобная хуйня о которой не узнаешь не заглянув в сорцы. Встречал не раз.
Ой да ладно красиво, два кобола с синтаксисом из девяностых.
жаба все таки приятнее
лучшие среды хотсвоп из коробки документация сборка вм еще много чего только сам язык говно
в шарпе же убогая документация вижуал студио зоопарк версий короче обычный кал от микрософта
нет ничего что в шарпе бы нравилось больше чем в жабе кроме модификации сборок
Разницы особой нет, можешь хоть говноланг учить, один хуй за время работы сменишь несколько технологий, плюс наверняка на работе помимо жабы периодически придется пистаь на js или питухоне или том же го, поэтому бери любой и не парься.
В общем с чего начать хотя бы? Меня только самый примитивный функционал интересует, качество графики пусть хоть как в начале нулевых - похуй абсолютно.
Чекал исходники всяких гис либ для джавы - там пиздец сколько всего разного, глаза разбегаются. Я хочу сам с нуля все написать
Тебе заняться больше нечем? Не от хорошей жизни в чужих тредах срёшь.
Бля это пиздец, я сам уже год вкатываюсь, остались только секурити и сиай сиди, если это правда, то год впустую получается. Придется идти по специальности на завод за 30к деревянных
Ещё год на секурити и следующий год на сиайсиди. Целых два года, за это время мир успеет стать однополярным.
Батя сказал, что если работу до ноября не найду, пойду либо на завод, либо в армейку
Иди вкатывайся сейчас, смысл ждать? От стажера глубоких знаний в секурити не ждут, а CI можешь вообще не трогать, похуй
Второе перспективней, сразу как сеньор помидор с 10 годами опыта зарубать будешь.
Вот и наслаждался бы сишарпиком в треде про шарп. Вместо этого ты целенаправленно спускаешься в канализацию и жалуешься, что в ней моча и говно.
Завод не даёт отсрочки от армии. Так что в армию ты идёшь в ноябре со 100%-й вероятностью, и неважно, нашёл ли ты работу.
В армию можно идти не только на срочную службу, отсрочка у меня есть в виде законченной военной кафедры
Я не хочу стажером, хочу ждуном, тем более на стажеров в мск сейчас около 20 вакансий, против 100 у ждунов, шансов найти что-то вменяемое еще меньше
Ждун это тот, у кого хотя бы год опыта работы есть.
Но вообще тыкайся просто во все места. В некоторых конторах стажеров называют джунами, а где-то и вовсе не делают различий.
практикант (бесплатная обуза для конторы на месяц-два, нужно учить и тыкать носом в говнокод и показыать нормальные практики)
стажер (обуза для конторы, только которой еще и деньги нужно платить, около 20-50к в течение 6 месяцев, точно так же нужно тыкать носом)
джун (болиеменее самостоятельная единица, за которой нужно присматривать и давать советы, 1-3 года опыта)
миддл (фулл самостоятельная единица, но все равно нужно давать ревью и фидбек, 3-6 лет опыта)
сенька (6+ опыта, тут уже и архитектура, и помощь тиме, и хуй сосать, и в жопу давать, и джунов менторить, и ревью проводить)
тимлид/архитектор (8-10 опыта и более)
и че
лол
а для чего я твоей мамке кримпай сделал
Для нового проекта (и того, кто за него платит) - возможно, для разработчика лучше жаба - больше вакансий при тех же зарплатах.
Условный рест с бд покатит?
*пет
Да, всё равно почти никто не смотрит.
>Условный рест с бд покатит
Покатит, но эти типовые круды у большинства вкатунов настолько стандартные и одинаковые, что даже скучно их открывать. Сделай, например, телеграм-бота, который транслирует треды с двачей, хоть выделишься чем-то
> даже скучно их открывать
Вот и давай сам весёлые тестовые задания. Вкатыши не будут тебя развлекать интересными проектами, они работать пришли, потому что если бы у них была хорошая фантазия, они сами были бы кабанами.
Добавь туда обращение к публичному рест сервису в интернете по рест-темплейту, валидацию входящих дто для твоей апишки, базу засунь в докер, добавь сваггер. Схему базы прикручивай через flyway/liquibase. Сделай тесты на рест-апишку mock-mvc-tests. Это скорее всего то, что тебе придется делать джуном на работе.
Думаю идеальным для пета будут 3-4 таблички.
Ну и одну из менее обязательных для новичка штук. Авторизацию, nosql базу, транзакции, кеши, шедулеры, работа с файлами, что больше понравится.
я например скомпоновал требования из нескольких тестовых, которые нашел в интернете или мне скидывали и еще немножко усложнил. Вот мне это присылали. И еще был один от райфа.
> базу засунь в докер, добавь сваггер. Схему базы прикручивай через flyway/liquibase.
А как это всё тестируется во время написания всего этого говна? Например с докером. Вот как я должен запускать код, чтобы проверить что он работает? Вот обычные юнит тесты для реста я понимаю, а когда такую громоздкую хуйню прикручивают хз что делать.
Докер - это просто среда, в которой будет работать твоё приложение, при этом само приложение ничего про докер не знает и может работать без него или в каком-нибудь другом контейнере. Тесты, конечно же, пишутся как обычно, без докера. Для тестов вместо реальной базы данных используется ин-мемори H2/HSQL, таблицы для них создаются не через flyway/liquibase, а обычными SQL-скриптами, которые кладутся в ресурсы каждый раз при запуске тестов выполняются заново, например, через EmbeddedDatabaseBuilder.
Если кабан говорит, что нужно, значит, нужно.
Так а как протестировать что flyway/liquibase и докер сконфигурированны правильно?
Через автотесты, которые будут поднимать своими скриптами твоё приложение и проверять его работоспособность какими-нибудь смоук-тестами. Никакими жюнитами там не отделаешься, надо создавать отдельный проект, в котором намешаны девопс, прогон тест-кейсов и генерация отчётов. В настоящем проекте этим должны заниматься автоматизаторы ручного тестирования, а не ты.
Это раздел информатики, который использует математику. Примерно как физика использует математику.
Спасибо, утешил. А то что то много свалилось на несчастного вкатуна.
О, я как раз это тестовое год назад делал.
>>41151
>>как протестировать что flyway/liquibaseсконфигурированны правильно?
Просто запускаешь приложение и смотришь в базу - накатились твои изменения или нет. Хотя у тебя скорее всего приложение даже не поднимется, если с миграциями что то не так (чек сумма не совпадает или ты там хуйню написал)
>>и докер
Собираешь свое приложение в образ и поднимаешь контейнер. Если на http://localhost:8080/ - все ок, значит работает. Скорее всего тебе нужен будет docker-compose, если собираешься БД подключать.
За пару дней в гугле разберешься. Но оставь это под конец, когда приложение уже будет готово.
А разве ставить ин мемори это не хуйня собачья? Вроде есть тема с докер тест контейнером, который будет поднимать ту же базу, которая у тебя основная. Хотя я сам это все пока не делал, только в теории знаю, мб хуйню написал
На виндовсе только шарп работает.
>>41267
>>41270
>>41241
Ты используем тестконтейнеры и для постгреса и для nosql-баз. Это намного лучше, чем инмемори базы для тестов, потому что как минимум мы пользумся функционалом, которого нет в инмемори. Те же jonb. И в скриптах лиувидбейза пишутся sql-ddl скрипты на постгресовском диалекте. Это уж не говоря о разном внутреннем устройстве бд.
На винде работает человек 5. Под всл никаких проблем. Просто на полтора гига оперативки больше тратится.
Проблемы на винде у меня были с еmbedded-kafka из spring-kafka-test.
Единственное тестконтейнеры это долго. Около минуты на поднятие. Если поднимаешь несколько раз или поднимаешь несколько - это боль.
А разве не минимум вдвое больше?
А я наоборот, лучше копейки в играх получать буду, чем притронусь к веб и прочему говну за золотые горы.
Топчик. Обычно мододелы делают это нахаляву. А для заряженного 17-летнего игродебила и мечтателя вкатиться в гейдев это отличное начало.
А если перегорит это уже шажок(джава-кор, гит и реляционка) для вката в тырпрайз-джаву.
Очевидные алгебра и геометрия на уровне 11 класса. Хотя может и линал понадобиться, который нормально дают только в вузах.
Тоже заорал с этого, и с майскуля слегка прыснул поначалу, но потом понял, что видимо там данные логинов хранят как минимум, а то и всякие там состояния типа денежного счёта и тому подобного, так что там даже реляции могут быть нужны.
Тут согласен. Жаль я со своими 120к не потяну такую жёсткую просадку (я уже терпел просадку в 0.5 при свитче из эникейства, нот энимор).
Буду готовиться к тырпрайзу, шоб хоть 90 дали.
далбич спрашивает какой диапазон значений у short
я говорю ты чё ебанат какой шорт??????! спроси про асид, спринг, кафку блять
нет ррряяя мы вам перезвоним ррряяя
пиздец дауны
Посоветуйте литературу/видео по hibernate чтобы очень подробно было разобрано построение связей между таблицами, организация их вывода, создание сущностей для этих таблиц и т.д.
Во всех встреченных видеоуроках разбирают пример с одной таблицей, говорят, что есть связи один ко многим/наоборот, а дальше сами ебаитсь.
Я ебусь, и ловлю ошибки вроде "should be mapped with insert= false update= false" на поле, по которому должна идти связь.
и че ты бомбанул от одного вопроса?
Ну смотри. Шорт содержит в себе 2 байта = 16 бит. Один бит содержит 2^1 = 2 значения, значит для шорта 2^16 = 65536. Теперь делим на две равные части, одну часть отдаем под положительные числа, другую под отрицательные 65536/2 = 32768. И отдаём единицу из положительного числа под ноль, в итоге получаем ответ на твой вопрос: диапазон значений short от -32768 до 32767.
65536
Следовательно диапазон будет от минус половины от этого до плюс половины минус единица (минус единица потому что 0 тоже считается).
Разве же это не база?
Реально бывают интервьюеры, кто хочет, чтобы все это как таблица умножения у третьеклассника-отличника от зубов отскакивала?
Прям точные значения меня не спрашивали. Когда заходила тема, то я обычно отвечал, либо 2^32, либо "примерно 2 миллиарда положительных, 2 миллиарда отрицательных значений"
Гуманитарий, спок.
Нет, если ты ответишь примерно, то отъебутся и начнут дальше спрашивать.
Хотя в чьих-то зарубежных крестовиковских карточках для anki видел и все степени двойки до 16.
Что значит "знать"? Ты передаёшь данные подключения через переменные окружения, конфиг или как-то иначе, а микросервис их использует. Хардкодить их, конечно, зашквар.
А как иначе?
Сколько ни читал про борьбу с null, всё сводится к возврату Optional там, где может возвращаться null, а про передачу аргументов в методы нихуя не пишут, пишут только, что передавать Optional нельзя, причём даже идея выделяет жёлтым и не говорит, что делать. Из возможных решений на всяких стаковерфлоу:
- "мням, всё-таки передавайте в методы нулл, пук-среньк"
- "хз, делайте параметры опшенл, но выглядит как говно, надо при вызове оборачивать всё в опшенл"
- "пишите перегруженные методы и копипастьте логику"
Пиздец какой-то. Нуллабл-типы из котлина таким уж говном не выглядят на этом фоне, но раз сам котлин говно, в жабе должно быть нормальное идиоматичное решение.
Тогда не надо лицемерно говорить, что можно. Надо во всеуслышание заявить, что Optional - это полумеры, не решающие проблемы с null.
Ну ты и лошок.
@Inject
@Qualifier(Qualifiers.STOLICHNAYA)
private ObjectProvider<Vodka> vodkaBottle;
@PostConstruct
public void bahnut() {
consume(vodkaBottle.getObject(100, VolumeUnit.GRAM));
}
>методы нихуя не пишут, пишут только, что передавать Optional нельзя, причём даже идея выделяет жёлтым и не говорит, что делать
Ох тыж блин, ну ежели люди в интернете пишут, да еще и идейка подсвечивает, то полюбасу нельзя, надо искать альтернативы.
Вот я ахуеваю, что с нулехейтеров, которые сами не знают зачастую, за что нули ненавидят, и какую проблему пытаются решать, что с остальных джавистов, для которых мнение евангелистов и идейки превыше здравого смысла.
> Ох тыж блин, ну ежели люди в интернете пишут, да еще и идейка подсвечивает, то полюбасу нельзя, надо искать альтернативы.
Вот я и пытаюсь найти обоснование, почему так делать нельзя. Но все говорят, что нельзя, некоторые даже придумывают отговорки, почему нельзя, но никто не пишет, что конкретно надо делать вместо этого. Догмы меня не устраивают, поэтому сейчас я передаю null и помечаю параметр аннотацией @Nullable - высером для линтеров, который подсвечивается только в идее и не подсвечивается на кодревью.
Возврат Optional хотя бы позволяет уменьшить количество NPE, как синтаксическая соль, напоминающая, что надо проверить, нашёл ли метод что-то.
>Вот я и пытаюсь найти обоснование, почему так делать нельзя
Обычно нудят что это мол оверхед, мол заворачивать-разворачивать опшеналы дороже чем чекнуть референс. Но блять когда у тебя энтерпрайз, где большую часть времени приложение пребывает в IO, как то чисто по Амдалу уже похуй на какие то крохи от опшенала. Тем более, в языке, где есть боксинг примитивов.
Единственный ИМХО трушный негативный эффект от опшеналов просматривается разве что в том факте, что опшенал - это херь с дженериком, а дженерики имеют свойства пропадать в рантайме. Из-за чего нельзя, например, перегрузить один метод разными типами опциональных аргументов. Но это ситуативная штука.
> Обычно нудят что это мол оверхед, мол заворачивать-разворачивать опшеналы дороже чем чекнуть референс
Вот это страннее всего было слышать в отговорках, будто я не про жабу пришёл читать, а про кресты, и задачи у меня не запросить данные из базы и сконвертировать в жсон, а написать движок для машинного обучения. Но, конечно, надо знать меру. Где и нужно задумываться прежде всего об оптимизации, так это в запросах к БД, которые реально дорогие даже на фоне создания десятков объектов.
Думаю о таком варианте: писать перегруженные методы, один общий приватный метод, который принимает опшенлы, и несколько публичных методов без соответствующих параметров, которые вызывают общий метод с обёрткой в Optional.empty()/Optional.of(), тогда и при вызове не придётся передавать null, надо просто вызвать подходящий метод без ненужных параметров.
Типа такого:
SELECT * FROM MYTABLE
ORDER BY ABS(а + б - (SELECT а + б FROM MYTABLE WHERE pk = 1)) ASC
FETCH FIRST 1 ROW ONLY;
Сортируем по разнице между суммами, извлекаем одну запись.
Разве не наоборот?
Оракл выпустил столько версий - вот и взялось столько версий.
https://en.m.wikipedia.org/wiki/Java_version_history
Меня тоже бесит новая нумерация. Лучше бы каждую версию прорабатывали, а не выпускали всякое сырое говно с половинкой фичи.
3 года работают над новой версией, а потом выпускают
jaVa Z
Всегда была сборка ждк от оракла (платная для коммерческого использования, с поддержкой) и всегда была бесплатная опенждк (с тех пор, как у жабы открыли исходники). Так и сейчас.
Бесплатная опенждк для коммерческого и некоммерческого использования*
бро иди нахуй))
Посмотри пост выше, вакансий нет, а желающих дохера. Иди учи что-то другое, поезд с жабой ушел, сейчас берут только челов, которые спринг вдоль и поперек знают
Это в целом по айти. А что есть кроме айти? Ничего.
В си шарп
А чем робот не устроил?
Че ты несешь, он про робота спросил
final NamedParameterJdbcTemplate jdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
final String zalupa = jdbcTemplate.queryForObject("SELECT zalupa FROM govno WHERE id = 1", new MapSqlParameterSource("id", 1), String.class);
Ой, извините. Нужно было сначала доки почитать :с
Иди обратно в свой пайтон тред
О, а покань, что от райфа?
Есть инфа от знающего человека, что в жаве скоро ожидаются реальные изменения. После того, как стабилизируют вальгаллу, уничтожат повсеместные блокировки (плохо влияют на перфоманс). Тогда везде и сформируют новую лтс. Зарплаты поднимут и будут держать, шарписты ничего не смогут сделать. Сейчас главное не бухтеть.
От нас требуется сидеть тихо. После того, как все сделают, все будет у нас хорошо. Всем устроят довольствие, как скалистам - каждый будет кататься в масле. Главное сейчас сидеть тихо и не суетиться. Никаких котлинов, никаких жетбрейнсов. Просто переждать и всё будет хорошо, там все схвачено.
Просто надо перетерпеть смуту и все наладится, братка. Не надо кричать и говорить, что жава - говно. Отсиди свой срок в интернете или просто расслабся, отдохни, накати пивка, бабу выеби в конце концов. Бесконечный сахар также является говном, говном более тщательно замаскированным, ну в сущности не дарующий хорошего кода.
Ребята, не кипишуйте! Сидите тихо, сейчас такой момент, нужно переждать!
Просто завяжите узелком свои хотелки, не время предъявлять претензии ораклу. Поверьте, там все знают лучше вас, там люди, управляющие жавой уже давно, а не вчерашние школьники. Они понимают, что делают. Стираются женерики - значит должны стираться, начали внезапно пилить вальгаллу - значит так нужно. Сейчас очень напряженный момент, некоторые много ходовые операции в критически важной стадии! Враги и конкуренты все это уже поняли, и сейчас может рвануть в любом месте, в любой момент.
Необходимо сплотиться и не реагировать на провокации! За вас все сделают те, кто сверху, не беспокойтесь! И вы не узнаете жаву, все зацветет!
Главное - потерпеть!
Иди обратно в свой шарпотред.
>Подскажите пожалуйста, есть куча и стек в jvm, этот стек тоже самое что и класс Stack ?
В любом языке есть, тупо потому что такова архитектура современных компьютеров. Где-то тебе все явно доступно - например С, где-то Java это есть, но с ограничениями - объекты в кучу, примитивы на стек.где-то это все скрыто, но по факту есть - Haskell.
Там тоже это все есть, и куча, и стек, и GC. Но в языке не специфицировано где и как все будет создаваться, все отдается на откуп компилятору а интерпретатор может делать совсем по другому. Поэтому на Haskell обычно про такие вещи не говорят.
Пару глупых вопросов от вкатуна
- В продакшене ОРМ используют или запросы напрямую? а то в го например все без ОРМ пишут, мбы так везде
- Видел некоторые вакансии где пишут что прод пишется не на самых новых версиях жабы, почему все просто не обновляются? Я такое только в плюсах видел, где челы до сих пор на с++11 сидят или просто вакуха странная?
>>В продакшене ОРМ используют или запросы напрямую?
Да.
Для орм - хибернейт
Для запросов - jooq, jdbc template.
Чистый jdbc никто не использует.
>>не на самых новых версиях жабы, почему все просто не обновляются?
1.Часто такие проекты согласуют пару лет перед стартом. Поэтому хоть джава 19 уже и вышла - стартовать сейчас будут на 17 а то и на легаси 11. А к моменту запуска проекта уже 23лтс выйдет.
2. Разница между версиями не такая большая. Если не нужна реактивность - то и 8 пойдет. Если нужна - в 11 все уже есть. 17 ничего особо не дает (лум в нее так и не завезли).
3. Некоторые обновляются, но это больше продуктовая какая то разработка. А большая часть жабы - аутсорс.
4. Иногда используется какая та редкая или самописная либа/фреймворк, которая в новых версиях не запустится, а переписывать нерентабельно.
>>Я такое только в плюсах видел, где челы до сих пор на с++11 сидят
В плюсах емнип разные стандарты в версиях. Они просто несовместимы. Но тут лучше байтоебов спрашивать.
Вы видите копию треда, сохраненную 3 ноября 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.