Это копия, сохраненная 27 апреля 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Вики по вкатыванию в джаву: https://github.com/java2ch/java-thread/wiki
Предыдущий: >>2602200 (OP) (OP)
Проще тогда сишарп учить, где вся инфа доступна и не надо платить ни каким менторам за сакральные знания.
Да, иди в шарп. Я не против. Ничего против шарпа не имею.
Но я сильно сомневаюсь, что там доступна инфа продакшен-уровня. Насколько мне известно с документацией по взаимодействию с инфраструктурой(брокеры сообщений, апи-гейтвеи, си-сиди, нерялицонные бд, пуши во всякую джиру) там похуже. Но не критично.
Сейчас весь крупняк сьезжает на шарп с азурой (а что будет когда майки туда добавят свой ai...) Так что вкатываться в шарп в 23 году это обязанность любого бэкендера
То есть, если мы в jpа используем репозиторий и сервис, то в jdbc будет тоже репозиторий, а вместо сервисов мы используем jdbctemplate ?
ORM это анти паттерн
Прямо в мсдн всё написано на русском и с примерами:
https://learn.microsoft.com/ru-ru/dotnet/architecture/microservices/multi-container-microservice-net-applications/rabbitmq-event-bus-development-test-environment635816
чивоблядь
вместо каких сервисов ты решил использовать темплейт?
темплейт сука делает execute query и прочую работу с самим ждбц
I ворф for this company for 30 years
неправильно. Надо либо пёрфект симпл, либо пёрфект континиус
720x1280, 0:25
'I've worked' он говорит
держу в курсе
По задачам.
Да, собственно, это весь спринг бут и есть: упаковка в исполняемый жарник, автоконфигурация, стартеры, application.properties. Дальше изучать сам спринг со всякими IoC/MVC/JDBC/JPA.
А что насчёт вот этого?
Петушарперы выёбываются тем, что в джаве было десятилетиями. Классика.
Разве что, если открыть оригинал в Яндекс.браузере https://www.youtube.com/watch?v=kdMG40wUCm4
Мне кажется он не настоящий сеньор, а вкатун, который передразнивает сеньоров на разных языках программирования.
Там вроде вообще ноль новых фич. Только новые версии превью и инкубаторов фич из предыдущих релизов.
Что за анекдот?
Нашёл древнюю мурзилку со спрингом без бута и с XML-конфигом зато на русском, разобрался, как приложуху со Spring MVC упаковывать в war и деплоить на сервер приложений. Заебался, потом наткнулся на годные видосики с бутом, и теории оттуда в общем-то хватило, чтобы написать пару петов и найти работу где в проекте нет бута, засилье XML и Java EE.
Двачую. Примерно так же.
А что тебе тут не нравится? Нет 2к-постовых тредов?
Сижу тут почти три года и вроде разницы не заметил.
Одновременно с перекатами после 500 в треде возросло количество шизиков, будто в JS-треде сидишь. Ну и постоянная клоунада с шарпом, раньше набеги были редкими. В целом, терпимо, но не нормально. Это мои личные ощущения, кто-то может считать иначе.
Тебе не кажется.
Изучать JDBC в виде NamedParameterJdbcTemplate
Дальше Spring Data JPA со всякими JPARepository/CrudRepository.
Spring Data Jdbc можешь не изучать, он используется редко, но там и учить почти нечего. Хотя удобнее писать DAO-шки для крудов.
На графике можно лицезреть плоды политики великого лидера ОПа с его перекатами после 500 постов с постингом 200 постов/день, и последствия недавней либеральной реформы с перекатом после 1000, когда постинг упал до 20 постов/день.
Это разовый выброс. Раньше перекаты были после 1000, постинг был более активным, и не надо было привлекать шарпистов и других шизиков, чтобы они создавали статистику. В любом случае, по двум месяцам сложно судить, я бы построил до лета, если бы не сломанный архив.
Инфы нету, учить нечего. Я так понял, что всё передаётся только через платный курсы или менторинг.
Понял, спс.
Через Ant или Gradle.
Я не знаю про курсы от ку ку
Загуглил.
Устроился на работу (оплачиваемую стажировку) зная только кор, там был спринг, дали время поизучать, потом пустили в бой.
Эх вот бы в 2к23 так работало
По вопросу - а какая сложность у этой штуки от модуля? Я циклов не вижу, О(1) что ли? И какие особенности реализации pow в стандартной библиотеке Java?
от показателя*
Это технологическое чудо будет исполняться примерно никогда. Давно же уже интринсики в Math есть.
Мне интересно с точки зрения алгоритмов. Правда ли возможно возвести в степень за о(1)? Если нет, то почему в вышеупомянутом классе нет циклов?
Spring boot не находит файлы html.
Он по умолчанию смотрит туда, у тебя вероятнее всего ошибка в контроллерах.
У меня был такой баг, вроде я пофиксил тем, что сменил версию бута. Еще бывало, что ютф 8 почему-то не резолвил, я тогда неделю сидел ебался с этим, уже сто раз везде, где только мог прописал ютф-8, в системных переменных прописал, но хуй там, вместо русских букв была всякая залупа, тоже версию сменил и помогло.
Им похуй, они даже на гитхаб не заходят.
Нихуя они не удобные! Приходится запоминать лишние байты информации и загружать голову говном, а во времени написания разницы с классическим мафом нет, ведь 2023 год на дворе, все идеей пользуются и прожимают таб после первого одного символа или первых двух символов.
купи накрутку
Я хотел сделать панель с номерами страничек, но не понимаю как их сделать через имеющиеся инструменты.
Это понятно, но приходится работать через всякую промежуточную парашу вроде таймлифа и спринг мвс. На РНР это всё гораздо проще делается. Тут прям боль.
Поддержал твою мамку на выборах жирсс вселенная.
Это легко палится.
только не надо плиз писать про хэшмапы и тд, интересно именно решение с побитовыми операциями
Рнпорт.
Продал твою мамку в Нигерии.
У меня сейчас 2.7.8. Сегодня поменяю...
Это для сервер сайд рендеринга что ли? Посмотри таймлиф или какую нибудь забытую хуиту уровня jsp
Никак, берут JS.
если в браузере - есть древняя технология jnlp
Есть GWT - компиляция из жабы в html/js/css
Тупо jsp - как в web 1.0
Сейчас учу Java, почти прошел программу по Java Core, в принципе нечего сложного: циклы, коллекции, ООП, норм
Но сейчас дошел до Functional Way, и прихуел, три дня уже сижу: абстрактные методы, ламбды, ссылки - делаю таски, но вообще не вкуриваю, а без этого и Stream API буксует
Мне как нубу есть смысл сейчас функциональщиной заморачиваваться, я прямо на позиции джуна буду лямбдами писать? Или пока можно отложить это дело, и уделить внимание Spring, Hibernate, SQL? Как выгодней?
C++ тред
>Вообще, чтиво довольно занятное, в свое время я получил много удовольствия за размышлениями об ООП через призму егоровых объектов. Но на собесе лучше никогда не упоминай что читал ее, я серьезно. Это может плохо кончиться, одно мимолетное упоминание ЕО заставляет знатно просраться даже самых зажатых анальников.
Анончики, а что плохого в ЭО? Я не читал, мне интересно, что он там такого написать мог, что вроде бы интересно и круто, но говорить про это не стоит.
Ничего плохого нет, наоборот, это практически абсолютная база, но тупоголовые анальники не могут переварить это, максимум, на который они способны - спрингодатовая круда, поэтому и пукан так прорывает.
Давай обсудим егоркошизу, если так хочешь.
Я книгу не читал, но я правильно понимаю что там так же как и в его выступлениях тупо обсирается большинство инструментов, типа спринга и хибера за использование которых кабаны и платят деньги крудошлепам(90% джавистам)? И обсирается только под предлогом, что эти инструменты нарушают маняооп, так как их понимает Егорка?
А в альтернативу даются какие-то шизовые матрешки из десятков явных конструкторов?
Вот вопрос для егоркошизов или частично сочувствующих.
Почему если спринг и хибер не соответсвуют ооп, то я должен слезать с хибера и спринга, а не сказать что ооп это просто пустая болтология без задач?
Да, будешь сразу пользоваться стримами и лямбдами. Лямбды это основа. Без остался очень микроскопический процент легаси, где нет даже жава8.
В том же спринге многие апишки отдают стримы или опшионалы, которые ты будешь дальше обрабатывать через лямбды. Или другие апишки принимают лямбды.
Но перейти можно к хиберу со спрингом можно сейчас, а к лямбдам вернуться позже.
В самих по себе ЭО нет ничего плохого. Просто занятная забавная книженция - довольно несистематизированная (из-за чего бесполезная в проде), но интересная "на поразмышлять". Интересный факт - существует ограниченное издание "Elegant Objects Razbor Poletov edition" 2017го года издания, с нейтрально позитивнымим аннотациями от завсегдатаев jug.ru.
Но так уж вышло, что автор (Егор Бугаенко) - не только айтишный евангелист, но и за политику попиздеть любит. Ну и допизделся. Сейчас крайне не модно и порицаемо быть одновременно "медийным" айтишником и не быть при этом прозападным лгбт-сочувствующим либерахой. А Егор слишком олдскулен, чтобы становиться последним.
Щас же ЭО-хейтеры сами не знают, за что ненавидят Бугаенку. Самые честные (и озлобленные) ненавидят его за его политические вирши. Кто-то называет его инфоцыганом (сами при этом бревна в глазах не замечая). Те же дурачки, что пытаются хейтить именно ЭО, а не Егора, как правило даже с лором ЭО не ознакомлемы, и набрасывают вообще не в тему.
Но хейт к автору крайне силен. На заре начала СВО до меня доходили слухи о каком то именитом шарписте-спикере DotNEXT (не помню имени), который в твиттере то-ли призывал, то-ли планировал, то-ли высказывался за то, чтобы литералли выследить и повесить Бугаенку.
В ШАРПОТРЕД РАТЬ ДЖАВИСТСКАЯ ВОШЛА!!!
НЕ ОСТАВИВ ПЕТУХАМ НИ ВЫБОРА!!!
АРМИЯ НА МАЙКРОСОФТ В БОЙ ПОШЛА!!!
СКОРО ВЫ УЕБИЩА ОТВЕТИТЕ!!!
ЗА НАХРЮК ЗА ЗАСРАННЫЕ ТРЕДЫ!!!
ЕСЛИ НЕ ИЗДОХНИТЕ ТО ПРИЛЕПИТЕ!!!
СВОЙ КОД К ВИНДЕ ГВОЗДЯМИ ЛЕТ МИНИМУМ НА ПЯТЬ!!!
ВЫ МОЛИТЕСЬ СУКИ О ПРОЩЕНИИ!!!
ЧТОБЫ ВАМ НЕ ССАЛИ НА ЕБЛО!!!
МЫ ИМЕЕМ ПРАВО НА ОТМЩЕНИЕ!!!
БОЛЬШЕ ТЫ В НАШ ТРЕД НЕ СМЕЙ КИДАТЬ ГОВНО!!!
ВСТАНЬТЕ НА КОЛЕНИ СУКИ ЕБАНЫЕ!!!
ПРИГОТОВЬТЕСЬ ПАСТЬЮ ХУЙ СОСАТЬ!!!
ЖОПЫ ВАШИ БУДУТ ЖЕТСКО ВЫЕБАНЫ!!!
ТОЛЬКО ТАК МЫ БУДЕМ ВАС "ПРОЩАТЬ"!!!
ВОСЕМЬ ЛЕТ НАШ ТРЕД ХОТЕЛИ ВЫЕБАТЬ!!!
А ТЕПЕРЬ ЖЕ ВСЕ НАОБОРОТ!!!
ЕСТЬ У ВАС УЕБИЩ ПРАВО ВЫБИРАТЬ!!!
ДЖАВСКИЙ ХУЙ СОВАТЬ ИЛЬ В ЖОПУ ИЛИ ВРОТ!!!
С УВАЖЕНИЕМ АНОН ИЗ ДЖАВАТРЕДА 19 ФЕВРАЛЯ 2023 ГОДА
Ну, если джавист, то ангулар будет ближе. Реакт - поделие от велосепедистов из фейсбука, рано занял нишку и держит.
Я тот чел который писал про текстовую игру и тип как лучше хранить текст на бэке в бд или по другому.
Карочу подумал что пожалуй лучше держать все в одной мапе, но как-то хз как ее сразу при первом запуске приложения забить данными. Тип поджо класс пилить где будет одна мапа или что?
>нарушают маняооп
А можно в двух словах, что у него там за ООП-то такое бугаенкосвское?
>>16861
>Кто-то называет его инфоцыганом (сами при этом бревна в глазах не замечая)
О каком бревне, и тогда уже и о соринках Бугаенко, идет речь, можно чуть конкретнее в двух словах? Я вообще фронтендо-макака. Просто пробую поднять свою spa в мобилочке, курс по мобильной разработке от Технострима вот отсмотрел по мобильной разработке, хеллоу-волд и туду-лист сделаю на нативных технологиях, если надо. Другими словами, я в джаве мимокрокодил и ничего не знаю. Но любопытно.
>О каком бревне идет речь
Да тут нечего мусолить, камон, мало в айти евангелистов-пустобрехов чтоли? Тем не менее все взъелись на одного.
> если джавист, то ангулар будет ближе
Там тоже наворачивают абстрактные фабрики и программируют на XML?
Т.е. речь о философствовании типа рассуждений Роберта Мартина о уровнях абстракции функции, что все надо распилить на одностроковые методы, и ещё без аргументов? Оке, понял
Если уж хочется навернуть говна, то зачем брать что то узкоспециализированное и нахуй никому не нужное? Реакт или вью, на крайняк.
Абстрактная фабрика дана из коробки, работает почти незаметно, вместо xml - модули, провайдеры и их иерархия. Но да, фабрики там в каждом классе - https://www.youtube.com/watch?v=5nVKrcnIFqA И ещё там есть классы, а в реакте типа не смогли и обхуесосили, мол наследование - антипаттерн.
Немчинский кстати пробовал реакт и ангулар и вью, говорит, что ему ангулар зашел.
>>16912
>узкоспециализированное и нахуй никому не нужное?
Ты сказал, что оно ускоспециализированное и не нужное? Не, если ты реально любитель навернуть говна, то конечно, реакт.
Точняк, так и сделаю
Настоящий фреймворк - это как настоящее ООП?
Хз как ангуляр сейчас, но когда у меня была оказия поиметь чуток дел с angularjs времен 2012г., от него так сильно несло спрингом, что как будто его специально для профессионально-травмированных джавистов дизайнили, чтобы те в случае чего в этом жестоком мире с голоду не передохли если вдруг джава - все.
Композиционно-компонентная идея реакта - лучше.
Слив Егорки засчитан.
Немчинскому джава нравится, так что ну нахуй джаву.
Я конечно понимаю, что хоркач есть хоркач, но как же убого выглядят куча набросов типа "это шарпомухам, джависты фронт не пишут" - "раз немчинскому зашло, то говно" - "настоящий фреймворк как настоящее ооп".
Чел спросил про то, как фронт писать - я ответил и аргументирвоал тем, что ангулар ближе к джава-фреймворкам. Т.е. чел спрсоил по делу - я ответил. А вокруг куча анончиков ничего, кроме пук-серк и вангую "ты порвался" не напишут.
>>17142
>Композиционно-компонентная идея реакта
Если нравится композиция против наследования, то ровно ничего не мешает юзать тот же подход в ангуларе. А вот реакт обложен костылями и деревянный, так что спектор возможностей на нем ограничен. Но реакционеры дохера мастера называть свои баги фичами, так что вот.
Егоркина книжка многими и позиционировалась изначально, как "ЧИСТЫЙ КОД на СТЕРОИДАХ".
То есть критики и выебонов еще больше, чем у Боба. А решений почти нет, даже таких кривых и тупых, как у Боба.
А реакт ближе к спрингу тем, что оба - очень попсовые, топ1 в своей нише. А уж какие там под капотом паттерны - это дело десятое. Это важно только промыткам, типа евангелистов языков или настоящего ооп, чистого кода и прочего абстрактного говна.
Спорить не буду, я все равно не настоящий фронтендер. Фронт меня всегда пугал. Для меня он всегда был каким то диким непостижимым местом, где не действуют никакие правила и законы, и где выживают только самые аморальные и беспринципные люди. Уж сколько этих фреймворков у них сменилось за десятилетия, ебануться. И все всегда выглядели для меня так, что к ним применим этот твой эпитет: "обложен костылями и деревянный".
Так что я вообще не удивлюсь если реакт реально был зосран. Я кодил на реакте только по вершкам, глубоко в экосистему не окунался. В целом мне зашло больше. Идея дизайнить систему посредством написания чистых компонент, и впоследствии сшивания этих компонент через функциональную композицию, мне ближе, чем идея сшивания аннотированных сервисов третьей стороной в лице DI контейнера.
Знаю, в джава-загоне подобные мысли звучат дико, но вот к такому выводу я для себя пришел за годы джава-девелопмента.
Двачую. Если di неплохо подходит для крудов тырпрайзного уровня, совершенно не означает, что он хорош в других сферах.
Хотя, если говорить про гуй - в ведре тоже правят бал di-фреймворки, не знаю как у айфонов.
> вакансий в рф на шарпе будет не в 3 раза меньше, чем на джаве
Что есть треть от дохуя? Тоже дохуя.
Если у тебя есть фильтры какие-то, то дохуя уже превращается в среднее количество. А потом в части из тех мест, куда бы ты хотел идти работать фильтруют уже тебя и не зовут на собес/попускают на нем. И ты получаешь уже несколько оферов.
Ну че это, решений то как раз дофига. Тут тебе и takes, и cactoos, и jcabi, не говоря уже про всякие pdd, 0cratы, rultorы, ... Егорыч не скупился на код, и в отличие от дяди Боба, всегда был очень конкретен.
Другой вопрос - что получилось из этого. Если глянуть под капот того же кактуса, то помимо весьма кривых архитектурных решений, где во имя следования принципам под нож идет перформанс, там найдутся и внутренние противоречия, где Егор нарушает собственные принципы. Поэтому то ЭО не готов к проду, и бездумные фанаты ЭО недалеко ушли от бездумных ЭО-хейтеров - одного поля ягоды.
Та забей и храни в бд.
Есть менее известный файлик data.sql, изначальные данные правильнее сохранять в нём.
А вообще эта хуйня для хеллоуворлдов, у которых никто потом схема меняться не будет. В нормальных проектах юзают liquibase/flyway.
>>Немчинскому джава нравится, так что ну нахуй джаву.
Так ему же нравится джава 7 и жаваЕЕ на эклипсе. Их то само собой нахуй.
Ты выбрал прям эталонного говноеда для примера.
Почитай прошлый/позапрошлый тред. Там вкатун миграциями данные накатывал. И из-за этого проблемы с тестами получил.
schema/data.sql это по сути примитивные миграции.
Ну на шарпе или голованге получить 0 офферов намного больше шансов.
>А реакт ближе к спрингу тем, что оба - очень попсовые
Большая тройка называется большой тройкой, потому что они все дохуя попсовые. Материалов по ангулару не меньше, сообщество даже русскоговорящее крупное. Хочешь самым-самым попсовым пользоваться - да на здоровье. Только не надо рассказывать про промытков, потому что это как раз про реакт. В реакте специфические костыли, и реакт-сообщество тратит кучу сил, чтобы убедить себя и других, что это фичи. В общении обычно ничего не могут сказать, кроме каких-то мифов о типа того, что у них пиздато-композиционно-компонентный подход или что ангулар более специализированный. Ничего, кроме реакта не пробовали, понтов выше крыши. Да сам Дэн Абрамов пипец косноязычный и нихрена не знающий челик. Ну повезло занять нишу первыми, сформировать сектанский культ, сделать свой реакт дико специфичным, что от него надо тупо отвыкать и реакт-фанаты просто бомбят, когда узнают, что можно и без стейт-менеджера. Аргументы-то в пользу реакта все-равно сектанские.
>А уж какие там под капотом паттерны - это дело десятое.
Ты бы посмотрел сперва, что там под капотом, что там в салоне, а потом рассуждал. Нихрена себе, свобода от стейт-менеджера, удобные di, прокаченные модули т.е. то, что непосредственно облегчает жизнь - десятое дело.
>>17205
>Уж сколько этих фреймворков у них сменилось за десятилетия, ебануться.
А сколько их сменилось за десятелетие? Года с 15-16 по-моему все стабильно, большая тройка - реакт-ангулар-вью рулят и доменируют. Самый молодой тут вью, выпущен в 14м.
>И все всегда выглядели для меня так, что к ним применим этот твой эпитет: "обложен костылями и деревянный".
Это вопрос бекграунда, где-то больше аналогий из прошлого опыта, где-то меньше. Я ровно о них и писал. Ну, зашло то, где аналогий меньше - бывает.
>>17212
>Если di неплохо подходит для крудов тырпрайзного уровня, совершенно не означает, что он хорош в других сферах.
Так то, что плох, тоже не означает. Очень простой и удобный инструмент.
>>17237
>Ты выбрал прям эталонного говноеда для примера.
Его компетенции достаточно, чтобы подтвердить ту очевидную вещь, что ангулар похож на джава-фреймворки. Я не ориентируюсь в джава-медийке, но думаю, что найти джависта, который попробовал и оценил все три фреймворка не просто. Не, если у тебя другие примеры, то давай. А то обсирать много ума не надо.
>А реакт ближе к спрингу тем, что оба - очень попсовые
Большая тройка называется большой тройкой, потому что они все дохуя попсовые. Материалов по ангулару не меньше, сообщество даже русскоговорящее крупное. Хочешь самым-самым попсовым пользоваться - да на здоровье. Только не надо рассказывать про промытков, потому что это как раз про реакт. В реакте специфические костыли, и реакт-сообщество тратит кучу сил, чтобы убедить себя и других, что это фичи. В общении обычно ничего не могут сказать, кроме каких-то мифов о типа того, что у них пиздато-композиционно-компонентный подход или что ангулар более специализированный. Ничего, кроме реакта не пробовали, понтов выше крыши. Да сам Дэн Абрамов пипец косноязычный и нихрена не знающий челик. Ну повезло занять нишу первыми, сформировать сектанский культ, сделать свой реакт дико специфичным, что от него надо тупо отвыкать и реакт-фанаты просто бомбят, когда узнают, что можно и без стейт-менеджера. Аргументы-то в пользу реакта все-равно сектанские.
>А уж какие там под капотом паттерны - это дело десятое.
Ты бы посмотрел сперва, что там под капотом, что там в салоне, а потом рассуждал. Нихрена себе, свобода от стейт-менеджера, удобные di, прокаченные модули т.е. то, что непосредственно облегчает жизнь - десятое дело.
>>17205
>Уж сколько этих фреймворков у них сменилось за десятилетия, ебануться.
А сколько их сменилось за десятелетие? Года с 15-16 по-моему все стабильно, большая тройка - реакт-ангулар-вью рулят и доменируют. Самый молодой тут вью, выпущен в 14м.
>И все всегда выглядели для меня так, что к ним применим этот твой эпитет: "обложен костылями и деревянный".
Это вопрос бекграунда, где-то больше аналогий из прошлого опыта, где-то меньше. Я ровно о них и писал. Ну, зашло то, где аналогий меньше - бывает.
>>17212
>Если di неплохо подходит для крудов тырпрайзного уровня, совершенно не означает, что он хорош в других сферах.
Так то, что плох, тоже не означает. Очень простой и удобный инструмент.
>>17237
>Ты выбрал прям эталонного говноеда для примера.
Его компетенции достаточно, чтобы подтвердить ту очевидную вещь, что ангулар похож на джава-фреймворки. Я не ориентируюсь в джава-медийке, но думаю, что найти джависта, который попробовал и оценил все три фреймворка не просто. Не, если у тебя другие примеры, то давай. А то обсирать много ума не надо.
>Те же дурачки, что пытаются хейтить именно ЭО, а не Егора, как правило даже с лором ЭО не ознакомлемы, и набрасывают вообще не в тему.
А кстати это типичное поведение хейтеров.
>>17291
>как правило даже с лором ЭО не ознакомлемы, и набрасывают вообще не в тему
Так зачем наизусть знать всю шизу, чтобы говорить, что она шиза. Для этого хватит просто перечислить аргументы шиза-вбрасывальщика.
Вот тезисы из его книги. - https://pavelkvach.com/posts/elegant-objects-notes
Почти все тезисы аргументируются в стиле:
>Не слушайте Егора Бугаенко. Это усложняет поддержку и тестирование.
>Так зачем наизусть знать всю шизу, чтобы говорить, что она шиза.
Зачем вообще говорить о том, что тебе неинтересно знать/изучать?
>Для этого хватит просто перечислить аргументы шиза-вбрасывальщика.
Зачем повторять за шизами?
Вот этот момент мне всегда был непонятен. Типа - ок, есть определенная идея. Тебе эта идея не просто чужда - тебе претит само ее существование настолько, что впадлу не то что изучить - даже прикасаться к ней. Почему вместо того, чтобы закрыть вкладку в браузере и забыть о ее существовании, лемминги бегут в интернеты доказывать, брыжжа слюной от злости и желчи, как она плоха, тем самым раскручивая ее известность?
>Почти все тезисы аргументируются в стиле:
Прошелся по ссылке, не заметил такой аргументации. Не понимаю о чем ты. Как будто обычный конспект.
>Зачем вообще говорить о том, что тебе неинтересно знать/изучать?
Очевидно же, чтобы потешить своё чсв доминированием над тем, кого ты осознаешь жалким, слабым и на фоне кого чувствуешь своё превосходство. У меня был знакомый, типа рокер. Фишка в том, что собственно рок-музыку он знал посредственно, типа пару отечественных групп, но вот на хейт реперов тратил огромное количество времени, перепосчивал в соц.сетях всякие скандалы, мемчики с тупыми реперами, хорошо знал, кто в репе самый тупой еблан, когда и как эти ебланы обосрались. Разумеется, годнота его не интерсовала, он тематически тригерился только на обсеры. Это настолько фундаментальная и пронизывающая все оспекты жизни вещь, что даже странно её не замечать, особенно на дваче. В политике, в научпопе, в техноблогинге - да где угодно.
>Типа - ок, есть определенная идея. Тебе эта идея не просто чужда - тебе претит само ее существование настолько, что впадлу не то что изучить - даже прикасаться к ней.
Справедливости ради, если идея так эмоционально-ненавистна, то логично её хейтить и всячески бороться. Другое дело, что мы описываем не рациональное поведение. Рационально было бы либо изучать, раз уж ты хочешь это опровергать, либо не ебать мозг и слушать любимый рок, а на реп просто говорить "мне это не интересно". Но на самом деле интересно хуесосить, доминировать и считать, что ты ебать гасконец.
>А внешний maven intellij idea есть не хочет...
>Так же с jdk 11 maven работать не хочет, выбрасывает connect denied, только с java 8
Смахивает либо на нубство, либо на пиздеж. Ты вбросил этот вброс чтобы разобраться, или чтобы быть обоссаным? Если первое - давай больше деталей.
Та же хуйня в новых идеях, поэтому не обновляюсь с 2019.1.
>Очевидно же, чтобы потешить своё чсв
Ну то есть ты сам признаешь, что хоть ты берись обоссывать ЕО, хоть не берись, это ничего не доказывает, не опровергает и не имеет ничего общего с предметом спора?
И что вопрос "зачем знать идею чтобы называть идею шизой" становится риторическим?
можешь пописять
Thymeleaf и секьюрити никак не связаны. Нужна логин-форма - юзай таймлиф, не нужна - не юзай.
При использовании реста шаблонизаторы нахуй тебе не всрались.
Годно.
>Ну то есть ты сам признаешь
Я могу на этом не останавливаться и признаться в том, что я в этом треде пока еще не написал ни одного плохого слова про ЕО. Поэтому рассуждать о риторичности вопроса про необходимость знания лучше с тем анончиком, который этот вопрос задавал. А у тебя детектор сломался. Если подумаешь, немного очевидно, что анон, который литерели пишет, что хейт не рационален и сводится к тупой специальной олимпиаде, этот анончик скорее всего не сильно склонен к хейту
чо там?
Только работы на голанге нет для вкатунов. Берут уже опытных челов с других стеков.
Для гошников лучше бы не выебываться на джаву.
Если джависты массово попрут на го, то они быстро напишут спринг на го и будут пользоваться им, пока "настоящие" гошники будут ныть что гуланг уже не торт и много магии это сложно.
Уже происходит и это вызывает батхерт у "чистокровных" гоферов
https://www.reddit.com/r/golang/comments/112vfr3/how_to_deal_with_java_developers_polluting_the_go/
Это был не наброс конкретно в твою сторону, если че. Более того - я и был все это время челом, считающим хейт нерациональным.
Просто давай заново проследим как шел диалог:
- Я отметил что дурачки-хейтеры не знают предмет хейта
- Ты в ответ на это спросил - зачем тратить время на изучение предмета хейта, если можно просто ее хейтить.
- Я спросил - зачем вообще хейтить то, на что ты считаешь зашкварным тратить свое время
- Ты ответил - для того чтоб чесать свое ЧСВ.
- Я из вышеперечисленного делаю вывод что хейт от людей, не сведущих в предмете, не имеет ничего общего с предметом спора. Бессмысленен. После этого как бэ становится само собой разумеющимся, почему таких я называю дурачками.
Мне так то давно похуй - хейтит там кто-то ЕО или не хейтит. Мне не столько ЕО нравится, сколько вот эти вот мартышечьи повадки айтишников бесят. Эта вот позиция - "хейтить то, что я не люблю и не знаю" - она ж пиздецки распространена. Взять хотя бы залетных шарпистов в этом треде.
И она как рак, убивающий инженерию.
хз попробуй
Давай ты ссылки на сообщения будешь кидать, чтобы было понятно, какой именно текст ты обобщаешь?
Вот например, >>17303 фраза про "зачем знать всю шизу" принадлежит не мне.
Если здесь >>17512
>- Ты в ответ на это спросил - зачем тратить время на изучение предмета хейта, если можно просто ее хейтить.
ты имел ввиду именно пост >>17303 , то слова "Ты ответил" ошибочны. Потому что это не я.
>ЕО нравится, сколько вот эти вот мартышечьи повадки айтишников бесят
Это повадки не только айтишников. Это общечеловеческая повадка, с которой культура в целом борется, но не современная масс-культура. Современная масс-культура наоборот, направлена на баг-юзинг.
Некоторые так ведут набор нескольких разрабов на одинаковые позиции.
А некоторые так наёбывают.
Собес - это не экзамен. Тебе двойку препод не поставит, если чего-то не знаешь. Это общение двух равных, чтобы выяснить подходите ли вы друг другу.
У меня в мухосрани такая вакуха висит уже полтора года. Я туда ходил в ноябре 2021. Даже устроился, отходил 2 недели и свалил с испытательного в один день.
Там короче невозможный легаси-какиш, ебнутый кабан, нешарящий лид, нулевые процессы и инфраструктура, заказчики - региональные госы и зп - соротыга.
Кабану походу похуй на проект, взял хуевое легаси с нулевой экспертизой в разработке, тупо бабки пилит. А вкатуны нужны для имитации деятельности. Они когда я приходил должны были новый функционал допилить. Допилили или нет, я хз - но часть старого не работает.
Не могу относиться к собесу не как к экзамену, у меня в ночь перед собесом бессонница, и я не могу с этим ничего поделать. Двойка = отсутствие оффера. Да и какой я равный челу, который сидит легаси 5 лет разгребает, я просто пыль.
За двойку в универе тебя отчислят и мама поругает, а провалишь ты собес или не пойдешь на него - разница нулевая.
Да за двойку ни в одном универе не числанут, плюс есть пересдача, а чаще всего и не одна. Здесь же нет пересдач, а вопрос работы гораздо более значимый, чем вопрос зачетки с неудовлетворительной отметкой или без нее. Я еще слышал, что если собес завалить, тебя в додж кидают в этой конторе на полгода-год. Только хз, это имеется ввиду определенная команда или все команды и проекты компании.
>Я еще слышал, что если собес завалить, тебя в додж кидают в этой конторе на полгода-год. Только хз, это имеется ввиду определенная команда или все команды и проекты компании.
То есть это не правда?
Ну, обычно нет, не правда. Может в конкретной конторе какие-то свои конкретные порядки, хз. Прям на собесе об этом можешь спросить и договориться, что ты типа подтянешь и снова придешь. Почему нет?
>на собесе об этом можешь спросить и договориться, что ты типа подтянешь и снова придешь
Это насколько хуево надо проходить собес, чтоб тебе прям там сказали, что шел бы ты учиться. Мне вот всегда говорили, что отправят фидбэк потом, а ща иди помаринуйся день-два.
Ну вот дают те говорят тебе про фитбэк, ты спроси, если он будет отрицательным, то могу ли я подтянуть какие-то темы и еще раз попробовать.
После работы прихожу домой, сажусь за комп и в голове абсолютная пустота. Ноль идей кроме написания очередного круда.
В итоге сижу ковыряю примеры из мурзилок, на написании которых особо скиллов не прибавится.
Ситуация немного улучшилась после того, как стал повторять школьную программу по физике да я настолько тупой - эту хуйню хотя бы можно вбить в компуктер и оно будет у тебя само считаться и симулироваться, сразу видна польза
Можно написать эмулятор ZX Spectrum
>После работы прихожу домой
Братиш, тут вкатышей-бумеров нет. Только упругие молоденькие джуны с вышкой. Извиняй
Скажи лучше, где взять силы, чтобы нормально день отработать и потом еще для себя кодить. Кто кодит - явно на работе халтурит.
Ну нет идей, и нет. Нечего и выдавливать тогда.
>В итоге сижу ковыряю примеры из мурзилок, на написании которых особо скиллов не прибавится.
Это не самое худшее для саморазвития времяпрепровождение.
Тут вот какая ситуевина вырисовывается, даааааа. Нормально, что энтерпрайз разработка на джэве нисколечко не изменилась за 10 лет? Джавамухи все так же настраивают спринг, обмазываются ломбоком и дрочат на паттерны из-за чего код утопает в развесистых иерархиях наследования и прочих перлах вроде класса с постфиксом *Impl. Были ли предприняты хотя бы какие-нибудь попытки усмирить боль и страдания?
Забыл подписаться, даааа
>>могу ли я подтянуть какие-то темы и еще раз попробовать.
Просто возьмут другого челика да и все. Через полгода, когда ты там подготовишься, вакансии может уже и не быть.
10 лет назад ломбока не было
Она не за 10 лет не изменилась, а за 50. Разве что вместо кобола и PL/SQL теперь жаба.
А итт кто-то еще пишет на джаве? Без троллинга. Раньше все сидели на скале, потом котле, а сейчас на го
Скоро и го превратят в джаву
Хороший наброс кстати.
Сменились языки, сменились парадигмы, но тырпрайз так и кодится по заветам дидов, процедурами, как на коболе и сях. Только если раньше процедуры были основной мейнстримной единицей языка, сейчас чтобы кодить процедурно приходится втаскивать в джаву DI контейнер и писать классы-сервисы. Вместо сишных инклюдов теперь - автовайр.
Да, сервис - это модуль, энтити - это структура, метод - это процедура.
Можно выкинуть DI-контейнер и писать всю логику в статик методах, никто разницы не почувствует.
>Можно выкинуть DI-контейнер и писать всю логику в статик методах, никто разницы не почувствует.
...но мыши жрут кактус, потому что джава - этож ООП язык! Как же так - кодить процуедурами, в 2023м? Надо хотя бы видимость сделать...
пора уже признать что ооп это очередная несостоявшаяся серебрянная пуля, которых уже десятки. В одном ряду с монадами
active model - антипаттерн, хотя это самый пик и самая суть ооп.
Хаскель и лисп - хоть один коммерческий продукт?
На ООП удобно писать десктопные гуи никому не нужные в 2к23, иерархия контролов и окон с пересылкой событий идеально вписывается в наследование и полиморфизм, как и идея, что сущности умные и могут сами выполнять логику. Но сервера рассматривают сущности иначе, это не самостоятельные объекты реального мира, а просто данные, которые надо обрабатывать по запросу с клиента, и это больше соответствует процедурам. Сервера на чём ни пиши - всё равно получится одно и то же.
>active model - антипаттерн, хотя это самый пик и самая суть ооп.
Я б поспорил. Никакая это не суть. Это всего лишь очередной говнопаттерн, созданный анальниками в попытке обуздать непонятную им парадигму.
>Хаскель и лисп - хоть один коммерческий продукт?
Мое любимое - апелляция к рыночку. Все таки анальников хорошо воспитали выдрессировали за прошедшие десятилетия как можно меньше думать головой и как можно больше потреблядствовать.
Че ты не ебешь там, когда я тебе прямо написал - на работе не устает тот, кто нихуя не работает. Хочешь писать код после работы - не работай, просиживай штаны, отдыхай, тебе еще кодить.
Если ты пол года будешь сиськи мять - конечно возьмут. А если ты по-быстрее сообразишь, и не успеют найти другого челика?
>у меня в ночь перед собесом бессонница,
Все очень просто - назначай по 2 собеса в день, быстро привыкнешь.
Я же вкатыш, у меня через 1-2 дня такого интенсива все приглашения на собесы закончатся
React
>>А если ты по-быстрее сообразишь, и не успеют найти другого челика?
Как ты это представляешь? Чел не знал хибернейт, плохо знал транзакции и мнопопоточку, а через неделю ужен все знает? Так он просто вопросы зазубрил, а не темы выучил.
Если отказали, значит недостатков было столько, что за месяц-два не подтянешь или уже есть кандидаты получше.
Лол, нет, нихуя, за час невозможно полноценно понять уровень знаний кандидата, собес это рандом. Вполне вероятны случаи, где интервьюеру моча в голову ударит, и он начинает задавать вопросы, которые очень редко встречаются на собесах и в написании крудов на дому вообще никак не помогают, а поэтому предугадать их и следовательно заранее заучить - анрил.
Меня вот попустили недавно на собесе из-за незнания спринг клауд слерма и недостаточного познания в проектировании микросервисной архитектуры высоконагруженных систем. Ну типо кэжуал вкатунские вопросы. Но я бы не сказал, что на погружение в эти вещи на базовом уровне, у меня ушло бы много времени, особенно, если плотно засесть и набросать пару петов. А с транзакциями так вообще, пары часов на изучения асид и изоляций хватит с головой, хз, че там понимать.
Если отказывают после собеса - значит либо много не знает (даже если собеседовал мудак - ну не повезло челику, неудачники нам не нужны) либо есть кто то получше за те же деньги.
Никто не будет второй раунд каждому проводить, когда кандидатов и так как грязи.
Не понял вопроса
Нет, в юнит-тестах ты тестируешь модули (units), в случае джавы это классы. Никаких "методтестов" нет. И упасть у тебя должны оба теста, это правильное поведение.
А я всегда думал, что юнит тестинг, это тестирование методов отдельного класса. А если во втором методе результат не детерминирован, ну предположим возвращается рандом валуев, который влияет на результат первого метода. Как тогда ассерт на это все написать без моков?
> А я всегда думал, что юнит тестинг, это тестирование методов отдельного класса
Нет, это тестирование поведения всего класса в целом. Когда ты в одном тесте вызываешь определённый метод, ты проверяешь не только участок кода в этом методе, но и все методы, которые вызывает это метод. Более того, если методы изменяют состояние объекта, в одном тесте зачастую вызывается несколько методов тестируемого класса, чтобы привести объект в нужное состояние и только потом проверить результаты. К примеру, если тестируешь репозиторий/DAO на in-memory базе, перед проверкой метода поиска обычно вызываешь метод сохранения того, что будешь искать.
> если во втором методе результат не детерминирован
Недетерминированность плохо совместима с юнит-тестами. Такого обычно быть не должно, есть риск получить тесты, которые будут при одном запуске зелёными, а при другом - красными. Поэтому либо рандом выносится в отдельный класс, инициализируется фиксированным начальным значением и передаётся в конструктор как зависимость, либо в тестируемом классе должен быть особый метод для инициализации рандома.
Ебаный в рот, почему петушарперы так похожи на хохлов? Почему петушарперы, как хохлы засируют рунет, засирают джаватред? Почему у петушарперов каждое второе слово - перефорс? Почему петушарперы, как хохлы, так любят бесплатно защищать барина своей жопой?
Может быть, петушарперы и есть хохлы?
>юнит тесты
>in memory base...
залетное шизоуебище вкатунидзе опять учит ньюфагов поднимать окружение ради ЮНИТ теста
Тестируй взаимодействие с коллабораторами и изменение состояния/поведения.
Веди войска в шарпотред.
До чего на харкачике любят доёбываться и из ничего делать проблему. Анончик жаловался, что страшных интервьюеров, потому что если он перед ними зашкварится, то пол года будет для них опущенным, а вот в универах ему пересдачу разрешали. Такая постановка вопроса предполагает, что он в принципе может подтянуть знания раньше, чем за эти пол года, и все, что ему мешает, это то, что суровые эйчары с интервьюерами ещё пол года не забудут, что он обосрыш на прошлом собесе. Я пишу, что возможно в каких-то конторах и есть такое правило, но самый прямой и верный способ определиться - это сходить на собес и спросить интервьюера о том, какие там порядки и когда он сможет закрыть хвасты и снова придти. Интервьюеры вообще могут быть неадекватными, а могут быть адекватными и им тоже нужно, чтобы челик, который готов работать, пришел в компанию. Интервьюеры тоже люди, а не какие-то палачи-доминаторы. Тут начали накручивать, что вот а ему скажут "мы вам перезвоним" и не скажут прошел он или нет, а по своей инициативе он нимеет наверное, а вот он не сможет доучить, а вот вообще жизнь боль и страдания и мы все умрёёём...
Когда канидатов как грязи - конечно не будет.
Ты еще Балмера с Гейтсом в петушарперы запиши.
>>а вот вообще жизнь боль и страдания и мы все умрёёём...
Тебя уже в рай определили, че ты кипишуешь.
Чо ты высрал?
Жаль, конечно, этого добряка
Это тот самый ImageClassPathPaintTextCaptionApplicationContext о котором говорил Евгений Борисов?
Новое резюме напиши или акк новый создай
Где он про это говорил? Я хочу послушать.
>По поводу комментов я согласен с ним, по поводу методов - с тобой. Просто охуел, как он там 50 строчек на 7 классов разделил.
На 7 классов в книге Клиен код Боб делил Args.java, поэтому скорее всего Анон имел ввиду его. Только в нем не 50 строк, а 100 в изначальном варианте, который принимал только булевые значения. Причем Боб не просто разбил на 7 классов, но и добавил функционала. Не только раздробил, но и дописал. Боб наглядно показал, что в исходном виде, при добавлении ещё одного типа аргуентов, класс обрастает условными конструкциями, логика усложняется, класс быстро становится большим и его сложно сопровождать. Замена условных конструкций полиморфизмом тут дохуя логичное, даже неизбежное решение. Класс обрабатывает разные типы аргументов, пока по-прежнему обрабатывать один тип аргументов, только булевые, Боб извлекает из класса Args базовый абстрактный класс для всех типов ArgumentMarshaler и собственно BooleanArgumentMarshaler. Дальше Боб добавляет функционал и появляются ещё три типа аргументов, ещё три полиморфных класса - что он делает не так? Мы получаем исходный Args, + базовый ArgumentMarshaler + ещё четыре класса, итого 5ть. В добавок Боб выносит обработку ошибок в другой класс, что тоже логично и правильно. Размер исходного класса почти не изменился, но в нем тоже добавлены новые методы с новым функционалом. Новый функционал также появился в новых классах, их извлечение было 100% логичным, получилось хорошо. Так что он сделал не так с этим файлом и за что анонасы дядю Боба хуесосили? Оправдывайтесь, хейтерки.
Код удобно смотреть на гитхабе, какой-то азиат законспектировал - https://github.com/glen9527/Clean-Code-zh/blob/master/docs/ch14.md
Вот так и появляются абстрактные энтерпрайзные фабрики физ базов.
Нет, я имел ввиду один метод Кнута на 65 строчек в классе PrintPrimes, разделенный на 14 методов в 3 классах.
Кроме 14 методов = проблема в том что состояние(нестатические поля) разнесены по 2 из 3 классов.
Всю хуйню блять в комментах перепробовал в разных вариациях а оно блять не хочет
Это как вообще и зачем? Почему для моей мелочной задачи нужно накатывать другой фреймворк? Хибер нахуя тогда
Я не совсем понимаю, что мне это даст? У меня уже есть сущности и они в таблицах. Тут я захотел добавить новое поле, чтобы у всех новых сущностях оно было и было автоинкрементых, то что у старых null всё равно.
Я всё что слышу по орм это антипаттерн
В любом случае мой вопрос остаётся нерешенным, как добиться такой хуйню при помощи хибера >>18989
давай разберём тобою написанное)))
Промотал в конец. Глаза сразу же зацепились.
Метод без аргументов и без возвращаемого значения. Что он делает? Хз, видимо меняет стейт объекта. Что будет если забыть его вызвать? Что будет если не вызвать следующий parseArguments() ? Видишь, появляется внутреннее знание, что нужно вначале вызвать parseSchema, потом parseArguments, и никак иначе.
Дальше, проваливаюсь в parseSchema и опять не вижу что оно делает и что меняет. Проваливаюсь дальше.
Окей, конечный метод parseSchemaElement добавляет значения в marshalers. По названю метода это понятно? Нет. Что будет если какой-то другой метод поменяет значения в marshalers?
Я бы выходным значением parseSchema сделал этот список marshalers и чтобы они передавались в parseArguments. Теперь ты не можешь вызвать parseArguments, если у тебя нет маршалеров. И никто не может их испортить, т.к. они недоступны за пределами метода.
Эта сука даже циклы запускает с итератором - членом класса.
Ещё мне этот момент понравился - setArgument. При этом на выходе boolean, и в теле оно модифицирует элементы коллекции. Ни в жизни бы не догадался что этот метод делает. Пиздос. Модифицирует аргумент, хотя сам пишет что так нельзя
щас делаю рефакторинг. Куда залить?
щас смотрю тесты и несовпадение эксепшенов
в гет методе пишем if (номер страницы == номеру страницы из базы данных){
возвращаем метод в качестве страницы ?
public String getArticle()
снова и снова вижу быдлокод. Из конструктора нельзя кидать эксепшены
Нет, пишем селект из БД по номеру страницы.
> Из конструктора нельзя кидать эксепшены
Да ну прям, а как ещё оттуда вернуть код ошибки? Или надо передавать в конструктор указатель на переменную для установки ошибок, и после вызова конструктора её отдельно проверять? Не писать же отдельную процедуру init и потом ебаться с if (!init()) { ... }
Макконел в совершенном коде тоже говорит что это плохо. Но приводит в пример C++, где при эксепшене в конструкторе не вызывается деструктор
Так надо совать вызов конструктора в try, а в catch освобождать память, проверив перед этим, что указатель не NULL.
Я похожую механику через комплитабл фьючи делал. Но я хз, в твоем случае это может быть оверкиллом. Опиши подробней языком кабана, че хочешь добиться? Может тебе тупо аспекта хватит, кто знает?
Да.
Аспекта не хватит, методы запускаются в разное время. Но если так совпадает, что они запустились одновременно, один всегда должен выполняться после первого.
А что значит - "одновременно"? Допустим первым был вызван и стартанул метод Б, и пока он исполняется, стартует метод А. Фарш назад не провернешь - получается что второй метод неизбежно выполнится после первого, и твоя семантика работать не будет.
Если литералли "одновременно", без порядка - synchronized на общем для этих двух методах объекте даст тебе гарантию. Впрочем - не даст производительность, но если хочешь производительности, изволь пересмотреть условия своей задачи.
Почему тогда в этом примере из книжки он нормальные цифры выводит?
Купил платную идею
в примере из книжки выводится 1 элемент массива, а ты пытаешься его целиком вывести
вместо test напиши test[a]
>Макконел в совершенном коде тоже говорит что это плохо
Ору в голосину с легасных джавамух, лол. Потрясывают своими книжонками от которых нафталином несет и ворчат - "ууу! Макконел сказал! ууу, читай дядюшку Боба - он все объяснил! не по солиду пишешь! почему не используешь паттерн стратегия?!!! немедленно переписать!". Смешно!
А, точно. Спасибо, так и знал что в глаза ебусь.
Схуяли?
Спасибо, что хоть отступы есть, многие нюфаги без них умудряются писать свои лабы.
У боба толковые советы, почему бы им не следовать. Можешь юзать другие бест практисы, например от Егорки, или придумать свои, но зачем это делать, если боб уже все придумал за тебя.
Немедленно прекратить тряску!
Если ты про ту хуйню после класса, то это случайность.
Я все понимаю, но конкретно к стратегии какие вопросы? Удобный паттерн, в спринге очень красиво реализуется через мапу бинов.
мне понадобилось когда я писал сервер для gps датчиков. Датчики соединялись по сокету и слали свои бинарные и полубинарные данные
Да.
И часто ты пишешь сервера для gps датчиков? Просто я погуглил и половина челов пишут что побитовые операции это чуть ли не самая важная хуйня в жаве. Другая же половина пишет что за 20 лет работы они этой хуйнёй всего пару раз занимались.
Метод, в котором Кнут налипил всё в кучу, как только мог, и нашлепал много переменных с именем в одну-две буквы? Чернила, шельмец, вишь, экономил? Я понимаю, что там можно найти переменную длиннее двух букв, но в целом класс реально сильно ужат, и в нем хз что происходит. Можно по дурному сжимать много кода в одну строку, но зачем? Ну да, Боб добавил человеческие имена, разбил на подметоды и отформатировал. И стало не идеально, но лучше.
>>19065
Цель главы - практическим примером проиллюстрировать логическое разбиение класса и извлечение новых классов. Помимо этого, в классе осталось много проблем и компромисных решений, которые "остаются читателю для самостоятельных упражнений". Так что отрефакторил и молодец, хорошо потренировался, оставь другим также.
Но про логические и временные привязки в следущих главах говорится много. О правильных именах тоже много. В цитируемом комменте анона говорилось, что Боб сделал слишком много файлов и не правильно разбивать класс на ахрелеон подклассов. Это нормальная критика Чистокода, потому что он действительно предлагает нашлепать дохрена одностроковых методов, которые очевидно с форматированием занимают больше места, чем одна строка, и разбить эту раздутую кучу на подклассы. Тут во-первых, можно смотреть на реальные примеры и оценивать, стало лучше, понятнее, или сложнее. Потому что реально есть код который сам по себе простой и который лучше не трогать архитектурными изысками, чтобы не получить fizzbuzz enterprise edition. Но у тебя критика другого рода, ты гритикуешь Чистый код чистым кодом, предлагаешь тоже, что и Боб в своей книге. Выходит, вся претензия только в том, что Роберт Мартин не достаточно Роберт Мартин? А Егор Бугаенко слишком Боб Мартин т.к. судя по конспекту выше, у него тоже самое, только более категорично?
Это очевидно только для нормальных разрабов, которые начали вкат с изучения базы, а не сразу языки программирования.
Начал с написания плагинов для майнкрафта. Всё понятно по названиям.
Не представляю, как выглядит человек, который не знает, как работает xor, битовые сдвиги, знаковые и беззнаковые, не знает, как проверить, является ли число степенью двойки.
Это не человек, это какой-то орк. Гоблин.
Р а С с И н Х р О н К а
Thread.join
thread1.start()
thread1.join();
и текущий поток выполнения ждет пока не выполнится thread1
>Ну да, Боб добавил человеческие имена, разбил на подметоды и отформатировал. И стало не идеально, но лучше.
нет, код стал хуже, чем у Кнута. Переменные делать осмысленными это хорошо, но тривиально. А разбивать 60 строчек на 14 методов и разносить состояние по разным местам это кроме увеличенной на полпорядка когнитивной сложности еще и побочные эффекты может принести.
Вот ты прямо уловил стиль Боба. Стена текста, в которой суть - "хорошо пишите, плохо не пишите".
Если, как анон выше, что делал скрины - ловишь такого гуру на говнокоде, то "тут есть еще над чем работать, это вам на домашнее задание", прямо как продавцы говнокурсов с юдеми, которых в норм компанию джуном не факт что возьмут.
А если на непоследовательности, применяя его же постулаты к его же коду, то нарциссизм в стиле
>Роберт Мартин не достаточно Роберт Мартин?
Я слишком крудошлеп для этого.
o.h.id.IdentifierGeneratorHelper: Natively generated identity: 80
К примеру я вот вижу как оно генерит там где я проставил @Id - получается 80.
А вот с не айдишником получаются фокусы и я ничего не понимаю
org.hibernate.orm.results.graph.AST : DomainResult Graph:
\-BasicResult [com.test.caseservice.entities.Case.testNumber]
org.hibernate.orm.results.graph.AST : Stack trace calling DomainResultGraphPrinter
java.lang.Exception: null
Т.е оно где-то там падает с нулом. Что падает? Почему падает? Непонятно.
Разве что вот это на мысли наводит
Hibernate: select c1_0.test_number from cases c1_0 where c1_0.case_id=?
binding parameter [1] as [BIGINT] - [80]
extracted value ([1] : [BIGINT]) - [null]
Extracted JDBC value [0] - [null]
Типо оно пытается сделать селект этого test_number по 80 айдишнику, но там приходит нулл потому что хибер сам не генерит этот айдишник
Как видно на пикриле я буквально сделал то, что советуют на стаковерфлоу и всё равно ничего не выходит. Пиздос
Недавно кстати первый раз поучаствовал в собесе. Лид дал задание прочитать пет проект вкатуна и по нему вопросы позадавать.
Думал, что на петы никто не смотрит, меня когда собесили - никто по моим двум проектам ничего не спрашивал.
Недавно кстати первый раз поучаствовал в собесе. Лид дал задание прочитать пет проект вкатуна и по нему вопросы позадавать.
Думал, что на петы никто не смотрит, меня когда собесили - никто по моим двум проектам ничего не спрашивал.
Но на нем работы в 4 раза меньше, а легаси и фулстека больше.
Лол, т.е. пет-проекты вкатунов смотрят только другие вкатуны. В принципе, годный способ проверить умение разбираться в чужом коде или проводить кодревью.
Но зачем? Это какая-то форма самобичевания? Ты так себя за что-то наказываешь? Зачем писать на языке, который 10 лет назад считался bloatware, а теперь почти каждые полгода туда тащат криво реализованные языковые конструкции, которые в истерике тащат из других языков, лол. Ну а спринг - это bloatware в квадрате и только психически больной человек будет добровольно на нем писать
Если бы в плюсики было так же легко вкатиться, как в жабу, и там бы платили столько же деняк, я бы даже хеллоуворлд на жабе не написал.
Кодревью на меня повесили уже полгода назад. Лид знает, что я его хуево провожу, но ему и другим опытным разрабам некогда и западло проверять простые джуновские таски.
Кстати две-три итерации ревью - переделка это норма не то что для полугодовалых джунов, а даже для недомидла с полутора годами опыта в нашей шараге.
Самое заебищное делать ревью по задаче, которая тебе не знакома и тз в задаче с точки зрения апи нужно уточнять. И ты идешь сперва к тем, кто дал задачу за уточнением к тз, прописываешь его и потом проверяешь.
Или вот написал на себя задачку. Велели расписать ее и отдать джуну на испытательном. Так я ее полчаса расписывал подробно, но написал бы я ее за час.
Хочу писать код.
И тестовую информацию. И ссылки на картинки и видео тоже в бд. И связь между страницами.
Никак.
Кароч я не знаю откуда ты анончик, но знай бы я то проставил бы тебе два чая. Сам я не догадался залезть в базу. А там в итоге это поле генерилось без сиквела и функции. Я почему-то думал что если я просто укажу у хибера serial он сам всё сделает.
"К java" есть смысл учить JS и PL/SQL, они могут понадобиться. Вот то, что C++ или шарп пригодятся джависту, крайне маловероятно, на крестах очень специфичные проекты, а шарп хоть и ближе к тырпрайзу, используют обычно что-то одно: либо джаву, либо шарп, но не одновременно.
Я тебе сразу написал, что аннотации хибера это не средство для создания схемы. Для этого есть миграции - ликвибейз и флайвей. Они тебе и версионирование схемы помогут делать. Потому что тебе придется менять схему рано или поздно.
Накати миграции(в обоих библиотеках можно на голом sql с тегами того, что это ченджсет). Потом в миграциях через альтер тейбл добавь сиквенс для нужного тебе поля.
Ну у нас скорее инфраструктурное всякое говно для линупсов и етл-скрипты для тестовых баз простенькие.
А нахуя нужна скриптопараша на jvm? Груви вот в грудле живет. А еще?
Ну а чо, технологии, проверенные временем, как и Java 8.
>А что значит - "одновременно"
Параллельно в двух потоках
>Допустим первым был вызван и стартанул метод Б, и пока он исполняется, стартует метод А.
Метод Б должен приостановится и дождаться А. Ну если там уже последняя строчка выполняется, то ладно, понятно что ее не остановить.
>>19634
Нет возможности получить инстанс потока, который выполняет другую задачу.
>Переменные делать осмысленными это хорошо, но тривиально.
Но во-первых, речь не только о осмысленных названиях, и во-вторых, осмысленные названия и адекватное форматирование увеличивают размер кода. В условной конструкции можно встретить длинное условие, наполненное однобуквенными переменными. Замена однобуквенных переменных нормальными однозначно сделает строку длиннее, но понятнее. Но неожиданно одних имен не достаточно для хорошей читабильности, необходимо ввести пояснительные переменные, которые неожиданно добавят в код новых строк. В данном примере абсолютно закономерное и оправданное увеличение через тривиальные действия, которое делает код лучше и понятнее. 60 строчек было изначально и от того, что строк 60, он не становился яснее. Одного добавления имен не хватило бы, чтобы сделать код понятнее. Требовалось детальное изучение. Для пояснения намерений, отдельные блоки кода надо было тоже как-то заименовать. Естественно, по итогу стало больше 60ти строк. Если бы код рефакчил Мартин Фаулер, их тоже стало бы значительно больше. Ты из раза в раз повторяешь "60 строк в 14", как будто это прям без вариантов плохо.
По поводу состояния, то, что оно должно быть едино, то, что оно не может принадлежать разным уровням абстракции, это твоя личная оценка, которую ты не поясняешь. А в чем проблема, если мы изначально ставим цель разделить единое сложное на простые части, чтобы при работе с одним аспектом программы, мы не должны были отвлекаться на чтение других аспектов? В чем проблема, что состояние разделилось на части по задачам, которое оно выполняет? В этом же и весь смысл и изначальная цель. Естественно, выделение абстракций и извлечение классов мешает видеть всю реализацию сразу и целиком, потому что это противоположная цель.
Вот у нас была куча не пойми чего, которая делает не пойми что. Вот у нас теперь класс PrimeGenerator, который внезапно генерирует пример, есть RowColumnPagePrinter, который рсует колонки с этими примерами и PrimePrinter. Нахрена им быть едиными и не разбивать состояние?
>Стена текста, в которой суть - "хорошо пишите, плохо не пишите".
А за что ты топишь, писать плохо? Стиль Боба это не только сказать "пишите хорошо", но в первую очередь о том, "что такое хорошо, и что такое плохо". Если книга отвечает на "что-вопрос", значит она добилась цели. Обычно критика предполагает, что Боб не правильно указал, что плохо, а что хорошо. Когда же критик в целом согласен по пункту "что хорошо", и даже на этой основе предъявляет самому Бобу претензии, то цели и содержания Чистого кода такой критик никак не отменяет. Если к самим рекомендациям Боба претензий нет, то доебывания, что он сам их не везде соблюдает, мне не интересны т.к. это опровержение нихера не опровергает. Как и оценочные обобщения с продавцами юдеми. Не говоря уже о том, что Боб оговаривается, что здесь не все чисто.
>непоследовательности
непоследовательность была бы, если бы Боб писал, что он сразу, везде и всегда херачит только клиен код. Он же как, как и многие другие, предлагает сначала захерачить рабочий код, а потом его поэтапно отшлифовать. Если глава прямо говорит, что показывает пример очищение черновика, то показать говнокод вполне последовательно, и если прямо написано, что ощищение не закончено и там дальше есть над чем работать, а цели главы достигнуты, то очевидно, там будет несоответствия "его же постулатам". Такие обвинения выглядят слабо.
Я думал, анончики реально могут разъебать Боба,а пишете какую-то мелочную хуйню в стеле "не разъебу, так понадкусываю"
>Переменные делать осмысленными это хорошо, но тривиально.
Но во-первых, речь не только о осмысленных названиях, и во-вторых, осмысленные названия и адекватное форматирование увеличивают размер кода. В условной конструкции можно встретить длинное условие, наполненное однобуквенными переменными. Замена однобуквенных переменных нормальными однозначно сделает строку длиннее, но понятнее. Но неожиданно одних имен не достаточно для хорошей читабильности, необходимо ввести пояснительные переменные, которые неожиданно добавят в код новых строк. В данном примере абсолютно закономерное и оправданное увеличение через тривиальные действия, которое делает код лучше и понятнее. 60 строчек было изначально и от того, что строк 60, он не становился яснее. Одного добавления имен не хватило бы, чтобы сделать код понятнее. Требовалось детальное изучение. Для пояснения намерений, отдельные блоки кода надо было тоже как-то заименовать. Естественно, по итогу стало больше 60ти строк. Если бы код рефакчил Мартин Фаулер, их тоже стало бы значительно больше. Ты из раза в раз повторяешь "60 строк в 14", как будто это прям без вариантов плохо.
По поводу состояния, то, что оно должно быть едино, то, что оно не может принадлежать разным уровням абстракции, это твоя личная оценка, которую ты не поясняешь. А в чем проблема, если мы изначально ставим цель разделить единое сложное на простые части, чтобы при работе с одним аспектом программы, мы не должны были отвлекаться на чтение других аспектов? В чем проблема, что состояние разделилось на части по задачам, которое оно выполняет? В этом же и весь смысл и изначальная цель. Естественно, выделение абстракций и извлечение классов мешает видеть всю реализацию сразу и целиком, потому что это противоположная цель.
Вот у нас была куча не пойми чего, которая делает не пойми что. Вот у нас теперь класс PrimeGenerator, который внезапно генерирует пример, есть RowColumnPagePrinter, который рсует колонки с этими примерами и PrimePrinter. Нахрена им быть едиными и не разбивать состояние?
>Стена текста, в которой суть - "хорошо пишите, плохо не пишите".
А за что ты топишь, писать плохо? Стиль Боба это не только сказать "пишите хорошо", но в первую очередь о том, "что такое хорошо, и что такое плохо". Если книга отвечает на "что-вопрос", значит она добилась цели. Обычно критика предполагает, что Боб не правильно указал, что плохо, а что хорошо. Когда же критик в целом согласен по пункту "что хорошо", и даже на этой основе предъявляет самому Бобу претензии, то цели и содержания Чистого кода такой критик никак не отменяет. Если к самим рекомендациям Боба претензий нет, то доебывания, что он сам их не везде соблюдает, мне не интересны т.к. это опровержение нихера не опровергает. Как и оценочные обобщения с продавцами юдеми. Не говоря уже о том, что Боб оговаривается, что здесь не все чисто.
>непоследовательности
непоследовательность была бы, если бы Боб писал, что он сразу, везде и всегда херачит только клиен код. Он же как, как и многие другие, предлагает сначала захерачить рабочий код, а потом его поэтапно отшлифовать. Если глава прямо говорит, что показывает пример очищение черновика, то показать говнокод вполне последовательно, и если прямо написано, что ощищение не закончено и там дальше есть над чем работать, а цели главы достигнуты, то очевидно, там будет несоответствия "его же постулатам". Такие обвинения выглядят слабо.
Я думал, анончики реально могут разъебать Боба,а пишете какую-то мелочную хуйню в стеле "не разъебу, так понадкусываю"
Ты меня переспорил. Я твою стену текста только до середины смог дочитать.
А чтобы ты был доволен ответом, то я должен расписывать такие же стены текста.
Разбиваешь картинку в поток байт и каждый байт шифруешь, получившуюся строку хранишь в базе
Одним нужно сортировать по айдишнику - лонги.
А другие сущности могут создавать в разных базах и реплицироваться в итоге в одну таблицу. И для уникальности тут кроме юидов ничего не подойдет.
>Метод Б должен приостановится и дождаться А
Методы никуда не бегут, чтобы приостанавливаться. Приостанавливаются треды, в которых эти методы исполняются.
В теории, ты можешь подождать во втором треду завершения первого треда, используя Thread.join. Но это один хуй не та семантика, что ты описываешь. Плюс, ты сам говоришь что инстансы тредов от тебя сокрыты. Да и даже если б были доступны, в сумме вся полученная конструкция звучит как тормозная неэффективная хуйня.
Короче, ты хочешь какую то ебаную дичь. Пересмотри условия задачи. Либо расскажи подробнее как ты пришел к жизни такой, и зачем тебе такое надо.
>Нормально, что энтерпрайз разработка на джэве нисколечко не изменилась за 10 лет?
10 лет назад в ынтерпайз легаси только начали на жаву с автобоксингом переходить, какой ломбок.
Ничего не изменилось с тех пор. От джэва проектов несет затхлостью, лежалыми пыльными тряпками, пердежом вперемешку с чем-то кислым. Типичная разработка на джаве это бесконечные созвоны и митинги с обсуждением контрактов, паттернов, трехзвенки и охающих мужичков в засаленных свитерах. Код и подходы остались где-то в начале 00-х - развесистые гирлянды аннотаций ломбока, спринга, хубирнейта, аспекты через аспекты плюс дерьмовый синтаксис самой джавы. Вишенка на торте это шизофрения уровня один интерфейс - один класс оканчивающийся на *Impl. Собирают весь этот понос каким-нибудь мавеном, где обмазываются километровыми эксемелинами. Самые отбитые пердолятся с антом. Тестов либо нет, либо там неловкая попытка в TDD, которая рассыпается при малейшем рефакторинге. Либо, в совсем запущенных случаях, тяжеловесные интеграционные или даже эндтуэнд тесты, которые гоняют на отдельном сервере каждую ночь. Про API first, OpenAPI, контрактное тестирование, джева разработчики не слышали и пишут от руки контракты на АПИ, а потом меняются ими с другими командами. Разработка даже, казалось бы, простых вещей, занимает недели или даже месяцы. От всего этого веет какой-то безнадегой и перманентными страданиями.
справочник валют, цифровой код + буквенный. Где-то на сайте центробанка может даже есть.
Готовишь скрипт миграции и загружаешь в бд
Проиграл с этого коупинга. Просто чекни как ведется разработка на C#. Пока вы тут аннотации дрочите и аспектами обмазываетесь, пытаясь со слезами на глазах настроить спрэнг и хубирнейт, C# разработчик уже выкатывает MVP, а контора получает очередной раунд инвестиций и фидбек от кастомеров.
Анон так выбора то и нет.
Шарп - работает только на винде. Нет спринга и поддержки новых технологий "из коробки", придется писать километровые конфиги и настройки для любой кафки. Каждая новая версия все ломает и обновление становится невозможным - от того сплошное легаси на проектах. Синтаксис многословный с этими гет/сет для каждого поля - прям как в жаве первых версий, когда ломбок и котлин еще не изобрели. Вишенка на торте это шизофрения уровня один интерфейс начинающийся на I* - один класс. Тестов либо нет, либо там неловкая попытка в TDD, которая рассыпается при малейшем рефакторинге. Тестконтейнеры с полноценными интеграционными тестами вовсе невозможны. Про API first, OpenAPI, контрактное тестирование, шарп разработчики не слышали. Вместо обычного реста приходится писать еще и фронт, а значит разработчикам на шарпе придется становится фулстеками и учить хтмл и jquery. Разработка даже, казалось бы, простых вещей, занимает месяцы или даже годы. От всего этого веет какой-то безнадегой и перманентными страданиями.
Так сразу же было очевидно, что петушарпер выложил все свои жопаболи на бумагу и поменял везде "шарп" на "джава".
Кароч решил написать фронт для своего проекта и залез в реакт. Ебать пиздец, я ебал это сё. Тупо писать на жабе бэк это райское наслаждение в сравнении с фронтом.
Это только на реукте так или вообще?
Весь фронт такой.
Удвою, любой код на жс какое-то адское месиво нечитабельное из себя представляет.
платеж, валюта в виде currency_code. Отдельный ид можно не делать. Нужно показать валюту текстом - делаешь джойн на таблицу валют
Нет там никаких временных файлов. Есть участок памяти с правами на запись и выполнение, jit туда записывает машинный код и затем тупо вызывает.
Имею ввиду как организовать курс. В таблице с валютой есть 10 записей,у них же есть курс между собой
это нужно интегрироваться с какой-нибудь биржей. Шлешь на биржу запрос о курсе между валютами, она тебе ответ с сегодняшним курсом
хранить это не надо. Только если сегодняшний курс в кеше чтобы лишние запросы не слать. И сбрасывать кеш в полночь по гринвичу
Так я и не утверждал, предположение было такое. Интересно тогда как оно исполняет участок памяти, это безопасно вообще?
В одном методе происходит сохранение в базу, а в другом периодически запускается обновление данных в базе.
просто вот создал я короче продакстс по гайду, а этот пидор не хочеи передовать автоматически на новый объект и созовать его стребуя что бы я вручную писал блять конструкторы .
так у всех или толькоу меня?
Для этого есть множество системных API, юзать их безопасно, если знаешь, что делаешь. Например, на винде через процедуру VirtualProtect() можно разрешить участку памяти выполняться, а дальше начинается магия указателей, смотришь на это и думаешь "А что, так можно было?".
Если не хочешь читать исходники JVM, можешь на гитхабе найти примеры JIT-компиляторов для арифметических выражений.
Да, в идее используются специальные проприетарные дополнения для джавы, через эклипс такой код не запустишь. Поэтому на промышленный сервер тоже надо устанавливать идею.
Аннотации не могут работать по разному в зависимости от иде. Аннотации вообще не работают, они - тупо данные на языковых конструкциях, обслуживаемые тулами типа ломбока. Тулам же в свою очередь похуй на твою иде.
Разные иде могут иметь разный уровень поддержки аннотационной магии. Если я правильно понял этот вот неинтерпретируемый бред:
> вот создал я короче продакстс по гайду, а этот пидор не хочеи передовать автоматически на новый объект и созовать его стребуя что бы я вручную писал блять конструкторы
...это звучит как недостаточная поддержка ломбока эклипсом, либо отсутствующий плагин для ломбока. Ты вообще устанавливал на эклипс ломбок-плагин какой нить?
Из тебя данные надо клещами выдирать блять.
По теме: ИМХО тебе нужно решать свою задачу не на уровне тредов и синхронизации, а на уровне СУБД и ее ACIDа.
Это NoSQL.
Смотря для чего. У нас в банковской системе для платёжных документов юзаются два справочника, упрощённо:
Справочник валют:
- ID
- цифровой и буквенный ISO-коды валюты (810 - RUR, 840 - USD, 978 - EUR)
- название (Рубль, доллар США, Евро)
- различные названия разменных единиц (копейки, центы), названия валют в разных количествах и склонениях для отображения сумм прописью
Справочник курсов валют:
- ID
- ID валюты
- дата и время начала действия курсы
- курс относительно рубля с точностью до 4 знаков после запятой. Курс самого рубля считается 1.0000
Хранятся все курсы за всё время, т.к. могут понадобиться для сверки.
По разному можно.
По простому ты не отдаешь бинарные файлы через контроллер. А через раздачу статики их папки resources. https://www.youtube.com/watch?v=bmMWrTMB5uo&list=PLФСU2ftbIeotGoGSEUf54LQH-DgiQPF2XRO&index=7
А так еще можно возвращать ResponseEntity<Resource> или ResponseEntity<byte[]>, или ResponseEntity<StreamingResponseBody>, указывая в хедерах тип и имя файла. https://www.callicoder.com/spring-boot-file-upload-download-rest-api-example/
После опыта написания фронтов на таймлифе, jsp, gwt, чистом js, js + jquery и ваадине реакт просто сказка какая-то.
Маппинг лучше в сервисе.
Написать отдельный компонент-конвертер и положить его рядом с контроллером. Сервисы ничего не должны знать о DTO, потому что должны быть независимы от транспорта/представления. А контроллер может знать и о сущностях, и о DTO, т.к. это связующее звено между бизнес-логикой и транспортом.
Это одна из неразрешенных загадок человечества.
А если я храню в бд название статьи, как мне потом в контроллере с ней работать ? В @GetMappin'e брать оттуда значение и делать return страницы(туториала)? Или давать на отображение название и показывать клиенту список ?
Спорная логика. А почему сервисы не должны знать ничего о дто, а о сущностях и проекциях базы должны знать? Или тоже не должны знать?
В моем понимании это именно слой контроллера ничего не должен знать о сущностях. И вызывать конвертер нужно именно в сервисе.
База данных одна, а потребителей сервиса много: веб-клиенты, мобилки, десктопы, другие системы с интеграцией через REST/SOAP/gRPC/очереди с XML и JSON, и у каждого потребителя по своему набору специфичных и несовместимых DTO. Сервис с бизнес-логикой быстро превратится в помойку на тысячи строк, если там заниматься ещё и конвертацией. В хеллоуворлдах, конечно, можно возвращать DTO хоть из репозитория.
Как раз таки контроллер точно знает о дто, как минимум о "входных". Поэтому и "выходные" туда логично засунуть.
Ну во первых кто сказал, что база одна? Во вторых кроме базы как источник данных для рест-эндпоинта могут быть рест или соап клиенты, которые по сути, как источник данных ничем от второй/третей базы не отличаются.
Ну и преимущество сервисов в том, что слоев сервисов можно наплодить десяток на одно апи, если логика сложная и многоступенчатая ты от этого никуда не денешься. А контроллер и репошка обычно по одному на одно апи. Так что выделяем просто отдельный сервис для конвертации во все возможные форматы и вызываем его из нужного котроллера или другой системы интеграций.
Плюс контроллер и так засран обычно кучей аннотаций по маршрутизации, валидации, сваггеру. Ну и код в теле метода по логированию, заполнению хедеров.
Зачем тащить конвертер в контроллер?
Сомневаюсь. Только вот такое знаю https://docs.jboss.org/hibernate/orm/5.6/javadocs/org/hibernate/stat/Statistics.html#getSuccessfulTransactionCount()
Если по расписанию вызывать можно наверно расчитать что ты хочешь.
List<User> getUsers (List<UUID> ids)
При передаче айдишников - выдает пользователей, пустого листа - возвращает ничего.
А если я хочу вернуть всех пользователей правильно ли передавать null?
Или надо сделать такой же метод рядом? например getUsersFiltered(Filter filter)
В идеале это должен быть 1 метод, и мне могут понадобиться все 3 варианта - список по ИД, список всех, пустой список.
Возможно ли так сделать придерживаясь null safe api?
Так неохота в кишки лезть пиздец,я использую себе спринг датовские репозитории и мне охуенно, печально что из коробки ничего нет
есть javamelody - оно там график рисует количества транзакций по времени
Я фуллстек макака, одинаково хуево и обильно клепаю микросервисы, апишки и веб морды.
При том что там методы работают по разному в зависимости от переданных параметров.
Во-первых параметр не меняется это типизированный лист.
Во-вторых похуй как там это где то еще работают, как мне на джаве вышеописанную хуйню реализовать?
Пустой лист + null выглядят как костыль. Неужто нет другого пути?
Есть контора в моей мухосрани в которой я никогда не работать, туда берут всех. Стоит ли туда сходить чисто ради интервью ? Так как это будет мой первый собес, что бы потом в нормальные компании приходить с подготовкой.
>При передаче айдишников - выдает пользователей, пустого листа - возвращает ничего.
>А если я хочу вернуть всех пользователей правильно ли передавать null?
я всегда так делаю, по моему вполне логично и понятно. но вместо List<> id лучше использовать объект FilterParameters или что-то типа того, в котором уже задавать параметры фильтрации. Причем если этот FilterParameters унаследовать от абстрактного класса или интерфейса то во всем коде открываются огромные возможности для рефакторинга и упрощения кода. Например вместо того чтобы писать кучу одинаковых по сути методов в духе getUsers(), ты пишешь один раз в абстрактном дао-классе getEntities(FilterParameters) в котором реализуешь все стандартные фильтры типа фильтра по уид, дате создания и т.д. а в каждом дао реализуешь фильтрацию только по тем полям которые уникальны для этого класса.
ничего сложно в этом нет, создание/завершение транзакции отлавливается в хибере при помощи простейшего листенера
html
Гугли микрофронтенды.
Обзмеился с джавамух. Вы зачем билд скрипты на xml пишете, болезные, лол?
https://maven.apache.org/guides/getting-started/#how-do-i-make-my-first-maven-project
Пукнул с этих потугов, лол
>ты пишешь один раз в абстрактном дао-классе
Проигрываю с джавамух. Никак не уймутся. Только дай волю - тут же шаблоны проектирования вхерачат, чтобы было оопэшненько, лол
Нахрен ты во всякие реакты лезешь, если тебе нужна хоть какая-нибудь морда для проекта? CSS-фреймворк какой-нибудь скачай, типа бутстрапа и не напрягай голову лишней хуйней. Ты же фронтенд-макака чтобы в реакт лезть.
>>типа бутстрапа и не напрягай голову лишней хуйней.
Так бутстрап и есть лишняя хуйня. Для него придется либо серверсайд делать дополнительно, либо все рвано поднимать вью и костылить поверх него.
Лучше вообще без морды тогда уж. Свагера хватит.
Всех набрали, ты опоздал.
Инфоцыгане сначала дали вкатунам команду "Вкатывайтесь в Python". Они и начали вкатываться, заняли все вакансии. Инфоцыгане заметили, что курсы по питону стали плохо покупаться и дали новую команду "Вкатывайтесь в Java".
Бамп.
Я еще понял, что потоков может быть много. То есть один главный поток, который должен выполнится вперед и другие, которые могут выполнятся одновременно, но должны дождаться главного.
Это не вкатыш, а залётный из какого-нибудь петухона, увидел тред на главной странице и решил высраться.
Все тебе сказали про тред-джойн, просто ты либо не слушаешь, либо напридумывал себе нереализуемой хуйни какой то, про стопанье методов как выше было. При этом деталей задачи не раскрываешь, а вытягивать клещами из тебя инфу по крупинкам - ну бампай сиди, хуле, надежда умирает последней.
Я уже все расписал максимально подробно. Один метод запускается при получении сообщения от мессадж брокера, второй запускается по расписанию. Все через спринг аннотации, так что доступа к инстансам тредов у меня нет.
Нихуя это не максимально подробно. Че за ответ ты ожидаешь услышать на эти крупицы? Да, к инстансам тредов у тебя доступа нет, и даже если б были, это тебе бы не помогло, потому что треды-обработчики событий не терминейтятся при окончании обработки, а тупо паркуются в ожидании следующих событий. Джойн на таком треде не завершился бы никогда.
Все, на данном этапе ты всрался, задача не имеет решения. Похуй - хоть бампай хоть нет - пройди в темпе пять стадий принятия и двигайся дальше. Я тебе еще прошлый раз это говорил - пересмотри условие задачи, либо расскажи языком кабана (бизнеса), что конкретно ты синхронизуешь и почему тебе важен именно такой порядок. Ты меня проигнорировал, начал нести какой то детский лепет про БД и монгу. Где бизнес блять?! Что это за скедулы, что это за сообщения из мессаг брокера?
И поделом. Вопросы задавать не умеешь, NDA обходить завуалированными формулировками не умеешь, конкарренси судя по всему знаешь плохо - че смысла тогда с тобой возиться?
Они не NDA боятся, а коллег, сидящих на дваче.
Не люблю проперти на ямле. Как то они хуже читаются и при написании можно с табуляцией объебаться.
Вот с докер-композами и гитлаб-си почему то с ямлом не было особых проблем.
>Вот с докер-композами и гитлаб-си почему то с ямлом не было особых проблем.
Потому что для них есть json schema.
Ты че не полиглот?
Это ямлик.
Короче разобрался.
Чем это отличается от гугла с гайдами на баелдунге?
Откуда пошла рекомендация делать мок зависимости, код которой ты не контролируешь? В чем ценность таких тестов? Это словно пальцем в небо, где ты гадаешь как бы ответила система, хотя на самом деле не знаешь. Я еще понимаю мок какой-нибудь библиотеки или простенькой хуитки, которая дает API и у нее мокают клиент. Но несколько раз видел, когда мокали клиент для огромной ебы, где дернув ручку создается целая гирлянда всевозможных объектов и состояние системы меняется, что простыми моками это либо не описать, либо займет весь день на один тест.
вроде элементрно. В пропертях включаешь логирование хибера/jdbc/jooq. Или есть подвох какой—то?
Так для мока еб должен быть или инмемори еба мок библиотека или прото такая же еба в тестконтейнере. Ну это уже интеграционный тест.
а если мы пишем юнит для обработчика ебы в нашем сервисе, то можно замокать апишку ебы. Ну и в тестовых пропертях прописать урлы подлючения к ебе как локалхост.
Разве хибер умеет сам перехватывать транзакции и в случае успеха писать инфу о них в отдельную таблицу?
>для мока еб должен быть или инмемори еба мок библиотека или прото такая же еба в тестконтейнере
Пиздец ты имбецил, старичок. Почитай на досуге, что такое мок. Инмемори еба, лол, тестонтейнер у него, лол. Все джавамухи таких дебилы?
Интересно, что это за сервис такой, в котором в 4 часа дня происходит падение активности?
Ты очевидно деградант. Иди улицы подметать.
Там одни хеллоуворлды на 5 строчек. А мне интересны архитектурные нюансы реальных приложений размера минимум среднего.
>Прямо в мсдн всё написано на русском и с примерами:
В голос, шарпобляди даже ссылку не могут нормально запостить не обосравшись.
Какая разница, где кидать RuntimeException, все равно хэндлер поймает.
На работе увидишь.
Я вообще не представляю себе, как кому-то могут нравиться ямлы. Хули они такие популярные? Это же буквально постоянное отстреливание себе ног из-за съехавших отступов.
>Я вообще не представляю себе, как кому-то могут нравиться ямлы
Это единственный человекочитаемый формат описания файлов конфигураций, который можно читать и при этом не рыдать от страданий. А твои проблемы с отступами отлавливает любой более менее развитый редактор кода или IDE. Я уж не говорю про всякие линтеры и валидаторы.
Какие нюансы? Для спринга там особо никаких специфичных нюансов нету. Берешь и читаешь доку спринг-кафки, она небольшая.
По кафке пик 1 неплохая тоненька книга, где кое-какие паттерны используются.
По микросервисам и спрингу - пик 2 недавно начал читать, но это просто краткий обзор но спринг-клауд библиотеками. Там есть кусочек и с со спринг-клаудовской оберткой вокруг спринг-кафки в конце. Но я еще не дошел.
Это мусорные книги. Ты все равно не научишься правильно строить микросервисную архитектуру пока не поработаешь в крупных и известных компаниях
Ну первая вполне полезная.
А мессенджинг между сервисами бывает и в достаточно небольших проектах.
@javastart
https://docs.oracle.com/en/java/javase/19/docs/api/java.base/java/lang/Thread.html#%3Cinit%3E(java.lang.Runnable)
Передаешь в конструктор Runnable, который функциональный интерфейс.
>А мессенджинг между сервисами бывает и в достаточно небольших проектах.
Единицы имеют кафку в проекте. Везде где я работал девопсы и админы не знали как развернуть и обслуживать кафку, а разработчики отказывались ее изучать и писали велосипеды поверх базы данных + джобу по крону, которая тащила данные и пукала по ресту.
То есть, для пет-проекта, не обязательно чтобы твои микросервисы были связаны и написаны архитектурно верно, за это спрашивать не будут на собесе, правильно?
Нахуй тогда ее изучать для вката, если ее нигде почти не юзают, и всем норм без нее?
Петушарпер, ты меня еще в мвп треде заебал. Дохуя где есть кафка.
Из 2к вакух на спринге на хх - в 900 есть кафка.
Послушав тебя я понял, что проблема на в шарпе, а в тебе.
>стоит ли туда отправлять резюме ?
Зачем? Если в вакансии есть требования ангуляра, а ты его не знаешь, то только время впустую потратишь. В следующий раз внимательнее вычитывай требования вакансии
То что ты называешь архитектурой это часть систем-дизайн интервью. И вот оно уже бывает в более-менее крупных конторах и обычно на позиции от мидла.
Там советы обычно это читать кабанчика, System Design Interview и что-то подобное.
Стоит, тебе все равно на 90% откликов не ответят.
Если им прям нужен ангуляр, то отсеют на этапе чтения твоего резюме.
Настолько одинаковую хуйню из раза в раз повторяет, что легко детектится.
А потом ноет, что работу найти не может с 2 годами опыта. Ну конечно, вместо того чтобы дрочить вопросы к интервью, петы и книжки он тут высирается.
тихо тут !
потом будет сидеть на собесе и его весь час будут только по ангуляру спрашивать, а он будет отвечать что-то в стиле: "эээээ ну да я что-то такое слышал, не помню точно, ответить не смогу"
в итоге на минус морали забьет на программирование и вернется в такси
это для очень низкоуровнего программирования микроконтроллеров
>А твои проблемы с отступами отлавливает любой более менее развитый редактор кода или IDE. Я уж не говорю про всякие линтеры и валидаторы.
С чего он должен отлавливать слетевшие отступы? Структура остается валидной, вот только информацию в себе несет неверную. Самый человекочитаемый формат - json, а в случае небольшого количества конфигов - .properties
Берешь и отвечаешь, что не знаешь ангуляр. Можно перед собесом напомнить, что не знаешь, но готов выучить. И все вопросы по ангуляру скипаешь.
Так ведь для angular и javascript нужен... А для javascript нужен html + css, а там и весь фронт подтянуть.
>правильно ли передавать null
Передавать и возвращать нули практически никогда не правильно. Если этого возможно избежать, лучше этого избежать.
Странный вопрос, ещё недавно под Android можно было писать только на джаве. А котлин по сути работает поверх джавы. Вот писать под Android на котлине без джавы получится не всегда.
Возврату null придумали однозначную альтернативу - Optional. А вот что передавать вместо null, никто не говорит, только то что это якобы плохо.
>А вот что передавать вместо null, никто не говорит
Тот же опшенал, почему нет?
Или заранее проектировать контракт метода таким образом, чтобы в него не было нужды передавать нул. Например, завести метод getAllUsers() для получения всех юзеров. Или завести контракт для описания фильтров, как тут уже предлагали.
т.е. где возможен null - там опшионал, в остальных местах принять на веру что объект не может быть null? А если таки будет?
А если таки будет, то будет NPE. Придется его поинвестигировать, найти рут коз и пофиксить. Тут уж ничего не поделаешь, скажем спасибо дидам, которые догадались референсные типы в джаве сделать nullable. Самое тупое блять решение, даже в плюсах такого дерьма не было.
Но справедливости ради, если в своем коде никогда нули не передавать и не возвращать, и следовать этому правилу везде без исключений в своем коде, мест, откуда тебе может прийти нуль, остается не так уж и много (как правило это - стыки с API зависимостей), и контролировать их относительно несложно.
>>проблемы с отступами отлавливает любой более менее развитый редактор кода или IDE
Идея не отловила проебанный отступ в чарте.
>>линтеры и валидаторы.
со стороны линтера это не ошибка, а просто другая строка
>>22604
>>Самый человекочитаемый формат - json
только при условии если оттуда все кавычки нахуй выкинут
>>Если этого возможно избежать, лучше этого избежать.
То есть 2 метода?
>>23008
>>Тот же опшенал, почему нет?
Это просто обертка над нулом и сути в моем примере не меняет. Я б сказал делает хуже.
Вот и получается либо 2 почти одинаковых метода getByIds(list ids) + getFiltered(filter) либо нул вместо пустого листа в первом методе.
Да, два и больше методов с одинаковыми возвращаемыми значениями и именами и разными параметрами это по джавиному будет.
>>это по джавиному будет.
Ну так предложи другой вариант, хуила. Тут от языка вообще мало что зависит, вопрос полностью про апи.
Джава ТОП язык. Сейчас правда буду ещё груви и котлинг изучать.
Обосрался с копиума анальника, как будто копросервисы строить надо, а не шлёпнуть две кнопки в спрингинитиалайзере и потом 6 лет допиливать производительность, чтоб запрос по 30 сек не обрабатывался.
Так вот вопрос следующий - а насколько привычной практикой является программирование прямо в терминале? Или все же только в иде?
ЯВУ ЯВУ ВЗЯЛ Я НАХАЛЯВУ!
>и потом 6 лет допиливать
Кто же тебе даст, лол? На мороз через месяц вылетишь с волчьим билетом
>>несколько методов
Тем что эти два метода абсолютны одинаковые во всем, кроме крайнего случая.
jebra.in
Ну в твоих вебстудиях на петушарпе так и есть. На джаве ты несколько месяцев только доступы получаешь. А потом можешь полгода ничего не делать и никто не заметит.
Почитай на досуге чем отличается оверрайдинг от оверлоадинга от овернжениринга. И посмотри видео.
https://www.youtube.com/watch?v=lGIftCUuRNQ
Морской бой между инстансами микросервиса с рест апи и балансером со стики сессией.
Да чат вполне рабочая идея. Но там без кучи фронта нет смысла особо. https://dev.to/subhransu/realtime-chat-app-using-kafka-springboot-reactjs-and-websockets-lc
скачай сам
Вопрос :
>List<User> getUsers (List<UUID> ids)
>При передаче айдишников - выдает пользователей, пустого листа - возвращает ничего.
>А если я хочу вернуть всех пользователей правильно ли передавать null?
Ответ :
Два метода :
>List<User> getUsers (List<UUID> ids)
>List<User> getUsers ()
Спасибо. Идея неплохая, нужно будет учить про балансер и липучую сессию, что есть плюс, с ними я совершенно не знаком. Жаль только не придется работать с бд и ауфетикацией/афторизацией.
Кстати, умение в лоадбалансер и все вот это вот связанное, кубернетес там, его часто на вакансиях требуют?
>>23369
Тоже спасибо. И это неплохая идея. Жопаскрипт вспоминать вообще не хочется, это да... Но придется.
А так вообще, как идея: сайт-статейник, с админкой и регистрацией, комментами, чатом сбоку и функцией игры в морской бой? Комменты со статьями и юзерами хранятся в бд, передаются туда через кафку, морской бой и собщения чата чисто на в кафке. Норм пет-проект?
>На джаве ты несколько месяцев только доступы получаешь. А потом можешь полгода ничего не делать и никто не заметит.
Никто не станет держать такого кадра полгода и больше. Все доступы ты получишь в первый день. Ничего делать ты не сможешь, т.к. с тебя спросят на дейлике. Будешь завтраками кормить - ну так у задачи есть срок. Проебал срок - получаешь пачку вопросов. Проебал еще раз - летишь на мороз.
Там где доступы в первый день и рабочие таски сразу или таски простые или это говноконтора откуда надо валить на испыталке.
В чем там проблема то может быть с кафкой, чтобы сразу не разобраться? Кинуть создать новый топик и кинуть в него эвент? Подписаться на топик и обработать эвент?
что делать с дублированием сообщений. Что делать в случае отката транзакции. Что делать если не получилось отправить сообщение
>>где доступы в первый день
>>откуда надо валить на испыталке.
Да, таким как ты там не место. Ищи дальше места, где ты полгода будешь сидеть на бенче и получать зепку. Особенно сейчас когда галеры уплыли и с запасом программистов уже никто не нанимает.
Ммм... Так. Сервис который продьюсит в кафку то, что пришло со странички администратора (круды по статьям, комментам, действия над юзерами), далее, сервер который консьюмит все это, на нем бизнесс логика. Далее, два "юзерских" сервиса, тоже самое что и выше, только с комментами юзеров. Ну и сервис морского боя и сервис чата, на каждом по консьюмеру и проду, в бд они ничего не кладут.
Я конечно не шарю совершенно в написании микросервисов, и то что выше звучит как херня и нагромождение ради нагромождения. Но если задача показать, что умеешь пользоваться апи всего этого, то вроде норм как мне кажется.
>что делать с дублированием сообщений
ничего, шлешь идемпотентные сообщения. В еблю с exactly once не лезешь
>Что делать в случае отката транзакции
посылаешь сообщение в конце @Transactional метода. Роллбек маловероятен, только если сервис упадет после отправки сообщения, но до коммита транзакции. С распределенными транзакциями не связываешься.
>Что делать если не получилось отправить сообщение
настраиваешь ретрай в продюсере
Предлагаю не забивать гвозди микроскопом.
Хочешь делать блог - делай блог.
Хочешь изучать кафку - поднимай кафку и отрабатывай всяко-разные кейсы с кафкой.
>Хочешь изучать кафку - поднимай кафку и отрабатывай всяко-разные кейсы с кафкой.
двачую кстати, если писать пет-проект вокруг кафки, то логики с кафкой будет мало, а всего остального дохуя. Легче написать 2-3 проектах где в 2-5 сервисах будет использована кафка в разных сценариях.
>только при условии если оттуда все кавычки нахуй выкинут
Да, ты прав, и это было бы на порядок удобнее ямла.
> Я б сказал делает хуже.
Дочитай мессаг до конца, потом суди.
>либо нул вместо пустого листа в первом методе.
Либо метод getAll без аргументов. Чем тебе не вариант?
> либо 2 почти одинаковых метода getByIds(list ids) + getFiltered(filter)
Еще ты при желании можешь избежать дублирование логики этих методов, сформировав в getByIds filter-обьект из айдишников и делегировав вызов в getFiltered.
Ставиться при необходимости
Вот двачую, Json5 выглядит именно тем, что нужно для конфигов.
Ты код на джаве в крупном проекте видел? Это буквально лес из аннотаций и джавакода уровня паблик статик войд Борщ борщ = нью Борщ();
Поучи меня еще, щенок. "Видел ли я код на джаве".
МР ЗАМЕРЖИЛ И НАСРАЛ!
А какие у тебя проблемы?
Разве ж это неприязнь?
Трушная неприязнь геттеров (aka "Синдром ООП им. Бугаенко")- это когда ты считаешь внутренние аттрибуты обьекта неприкосновенными снаружи ни при каких условиях, и выгрузку их наружу через методы - лютым табу.
А у тебя просто ментальный загон какой то. Юзай альт-инсерт в ИДЕЕ для генерации геттеров, юзай ломбок. Или забей. По настоящему JavaBean спецификация нужна всяким фреймворкам типав ОРМов, но таже джексон сейчас спокойно конфигурится для классов с почти любым публичным контрактом.
>Трушная неприязнь геттеров (aka "Синдром ООП им. Бугаенко")- это когда ты считаешь внутренние аттрибуты обьекта неприкосновенными снаружи ни при каких условиях, и выгрузку их наружу через методы - лютым табу.
В общем-то я так и считаю, у нас геттеры есть только там, где нужно напрямую данные передать куда-то, где фактически не объект, а интернал пакет.
подключись дбивером или твоей любимой программой для управления бд.
или telnet localhost 5432
Не должно выдавать ошибку
Ну и ладно. В чем проблема то?
Спринг-дата и еще 100500 фримверков на помойной джэве опираются на принцип джэва бина - приватные поля и геттеры-сеттеры.
Может скажем ему?
>Отказываешься от мутабельности и от всех библиотек
Бро - спринг-дата это стандарт де-факто в 99% проектах на помойной джэве
Бд и файлы и созданы, чтобы состояние хранить. Для этого отдельный слой выделили.
А в джава-коде в кого ты там мутировать собрался?
с тебя еблана
значит что-то с идеей
Очевидно неправильно. Анон тебе правильно сказал пиздохать в петухон.
> А какая разница? Что ответ на этот вопрос меняет?
Если ответ "это сущности моего говнокода", то нужно чекнуть башку, если противоположный — то нужно задать вопрос "нахуя мне засирать ещё и свой код мутабельностью, если для этого есть специальные места"? Чтобы что? Чтобы сложнее было дебажить? Ответь, мне реально интересно что такого тебе даёт мутабельность.
Не вопрос.
Вот делаешь ты, к примеру, простенький, но очень важный рест. И в рамках работы с этим рестом есть нужда создавать, хранить и мэнеджить пользовательские сессии. Предположим что ты не можешь себе позволить эти сессии сгрузить куда то на диск - ну вот настолько для тебя пиздецки важен throughput, что просадка от этого маневра сразу станет ощутима.
В сервлетах есть HttpSession, куда аттрибутами можно складывать сессионную инфу. Но налицо мутабельность. Какую немутабельную альтернативу придумаешь в своих убийцах сервлетов ты?
>Ответь, мне реально интересно что такого тебе даёт мутабельность.
А че ты на меня бросаешься, как будто я защищаю какую то позицию. Я так то тем же самым занимаюсь, чем и ты, только с другой стороны - препарирую ризонинг свидетелей иммутабельности.
Если отвечать по существу - спору вообще нет: разумеется это не сущности моего приложения. Но что это меняет? Как только ты скаплился на что-то мутабельное, ты один хуй получаешь тот же самый спектр проблем от сайд-эффектов, вне зависимости от того, твоя эта мутабельность или не твоя. Поэтому я тебя и спросил. В чем разница то?
Окей, а теперь перед тобой стоит задача - написать такой кэш. Как ты его запилишь, если мутабельность - антипаттерн?
> А че ты на меня бросаешься
Скрин броска?
>как будто я защищаю какую то позицию. Я так то тем же самым занимаюсь
Давай по существу. Неинтересны метаоправдания кто там чем занимается
>Но что это меняет?
Речь о твоём приложении идёт? О твоём. Бд - сущность твоего приложения? Нет. Следовательно, наличие бд не может оправдывать занос мутабельности в своё приложение.
>ты один хуй получаешь тот же самый спектр проблем от сайд-эффектов
Вот и решай этот спектр изолированно, нахуя ты его ещё глубже тащишь? Он типа решится от того, что ты обернёшь его в мутабельный объект, протащишь по всей кодобазе и 100500 раз изменишь?
Не стоит. Если поставят задачу писать велосипед и не дадут воспользоваться одним из имеющихся распределенных/локальных кешей - уволюсь.
Нужно отделять прикладной уровень от инфраструктурного.
>Скрин броска?
Че тебе скринить? Ты с какого то рожна решил что я - аквокат мутабельности, и начинаешь меня зачем то переубеждать: это вот твое "...cледовательно, наличие бд не может оправдывать..." вообще не в тему, ибо я вообще нигде ничего не оправдывал. Я отлично понимаю претензии людей к мутабельным обьектам, мне не надо обьяснять прописные истины. Мне просто интересен ход мысли челиков, с категоричным ебалом говорящих об антипаттернах.
>Вот и решай этот спектр изолированно, нахуя ты его ещё глубже тащишь? Он типа решится от того, что ты обернёшь его в мутабельный объект, протащишь по всей кодобазе и 100500 раз изменишь?
Ок. Тогда тебе - тот же вопрос, что я адресовал анону вот здесь: >>23869
Тогда что же получается: писатели кэшей - говнокодеры? Или все таки мутабельность - не во всех случаях антипаттерн?
Писатели кэшей пишут совсем на другом уровне. Там - не антипаттерн, как и в случае с байтоёбами.
Что "никак". Антипаттерн или нет?
Жаба ничем не лучше шарпа или Go, если Оракл позволяет себе решать за разрабов, что антипаттерн, а что нет. Вот приняли они очередное неудачное решение, надеясь заставить разрабов писать код так, как хочется Ораклу, а смысл, если в итоге этим говном никто не пользуется. Туда же проверяемые исключения, модули jigsaw и прочая хуйня без задач.
Чего там оракл решил за разрабов? Все пишут как хотят, это на петушарпе майки водят за ручку детишек-долбоебов.
Ораклу больше всех похуй, это аноны чето выдумывают.
Да и странно видеть в одном предложении упрек подобного рода в сторону Оракла, и гоу, у которого юниформность позиционируется как первичная ценность.
Я просто нахуй пошлю обоссаные рекорды, буду дальше писать POJO с сеттерами, и ничего ты мне не сделаешь.
А почему проекты на джэве такое дерьмо? Ну, т.е. у разработчиков в принципе отбито чувство прекрасного. Могут годами писать говнокод без тестов и как-то ухитряются ссать в уши менеджерам, что "вот-вот! еще чуть-чуть и прямо в продакшен! осталось найти куда писать код!". Блядь, в любом другом месте эту всю шайку-лейку уже бы выгнали на мороз нахуй, лол.
Найду и заставлю переписать.
То есть ты попал на легаси говнопроект, где нет тестов, не следуют соглашениям и ссут в уши менеджерам, и поэтому решил, что так везде?
На нем ничего не пишут.
Самый известный проект на шарпе это бинг, которым никто не пользуется.
А правда что в шарпе не используют тестконтейнеры? Что там вместо них? Всегда нужен доступный отдельный тестовый сервер базы?
Бро... Просто мокаешь доступ к базе и к чему ты там ходишь и все! Почитай Фаулера хотя бы. Нужно писать юнит-тесты
Бля, серьезно, это каноничный ответ шарписта? Ну и кринж...
Пошутил я.
Есть такое: https://dotnet.testcontainers.org/. Хз насколько распространено и паритетно по фичам, я не шарпист.
Как я интеграционный тест, где я тестирую интеграцию с реальным поведением бд буду тестировать моками?
Интеграционные тесты не нужны?
Можешь пруф кинуть - где у Фаулера такое написано?
Судя по активности на стековерфлоу и в репозитории на гитхабе этим никто не пользуется.
Даже жаль этого челика.
Ну в мвп треде он говорит про два места работы. Типа донные галеры с фулстеком. А потом на простейших вопросах по сикулю обсирается.
Думаешь даже донные галеры выдумал?
Не думаю что поработав в одной из этих галер хотя бы полгода можно было бы не узнать что такое интеграционные тесты.
От ерата кстати был неплохой вводный видос по спринг бут тестам. https://www.youtube.com/watch?v=YOK3IDBBTlg
Наличие курса не гарантирует его прохождение, а прохождение не гарантирует усвояемость.
Ну не вывозит школотенок тьюринг теста, че смысла мусолить?
>Че тебе скринить? Ты с какого то рожна решил что я - аквокат мутабельности
> Как только в рекорды завезут мутабельность.
Про рекорды я ни слова не говорил, ты перепутьал меня с другим аноном.
Про мутабельность говорил я, и мне лень участвовать в вашем петушином сраче.
>>Жаба ничем не лучше шарпа или Go
>>Оракл позволяет себе решать за разрабов
>>этим говном никто не пользуется
Если ты про кваркус - то спринг натив на подходе, который будет таким же быстрым как го/кваркус но с фичами спринга.
А что случилось? С лучшим языком произошел хлопок?
А по фану? Если до этого не использовал ни один язык под JVM?
Котлин вроде круче, но к нему душа не лежит.
А на грувях есть градл, груви бины в спринге.
Груви обычно используют как язык для конфигов, самостоятельные приложения на нём пишут очень редко. Да и динамикодрисня.
Напиши свой нетфликс или сбербанк.
Рофл блять, кваркус даже близко не был упомянут, а спрингоевангелист сразу подорвался свою спрингопарашу продавать в нерелевантном для этого треде.
Да, с ораклом проебался. Кваркус это от рэдхатов.
Тогда тем более не понял твой высер про оракл в контексте сравнения с го.
Всем в джава мире давно уже похуй на поделки самого оракла. Но и перепиливать ждк и ломать совместимость никто уже не станет, уже насмотрелись как шарп с этим обосрался и стал синонимом слова легаси.
Ну че тебе теперь, иронию разжевывать чтоли?
Изначальный наброс был:
>Жаба ничем не лучше шарпа или Go, если Оракл позволяет себе решать за разрабов, что антипаттерн, а что нет
И наброс был вдвойне тупой, потому что (помимо того, что Ораклу на самом деле похуй) Go - язык, в философию которого изначально закладывалась ортогональность, единый стиль и минимум синтаксического сахара. То есть язык, который литералли создавался гуглом для того, чтобы решить за разрабов, как им следует писать код.
Ну например система уведомлений. 3 продусера - 1 консумер.
Есть 3 разных сервиса с крудами. И при всех изменениях в состоянии бд 3 сервисов эвенты летят в сервис уведомлений. Ну и покрути, поверти. В один ли топик слать или в несколько. В одну партицию или в несколько. Что ключами будет являться. Слать весь объект по кафке, дто с частью инфыа или просто статус+ид и забирать инфу по ресту.
Потом можно сервис консумер поднять в 3 инстансах. И будет 3 консумера в 1 консумер группе. Потрогать посмотреть какие будут проблемы, какие преимущества.
А потом вообще сделать несколько сервисов-консумеров из разных групп.
Книги.
Высеры дебичей в этом треде.
Тачка своя есть?
Скоро и таксистом не заработаешь. Ремонт и покупка авто сильно подорожали и еще подорожают. Так что цена поездки увеличится. А покупательская способность населения падает. Самые большие пользователи такси сбежали из страны.
Пытаемся вытравить шарпистов.
Чтоб твою мамашу ебать.
Выдавили питонуха.
4 значение
3 значение
2 значение
1 значение
Сортировка по алфавиту идёт, это из-за unique ?
>в обратном порядке увеличивается
Это ты составляешь заголовки новостей с отрицательным ростом?
Летели два гуся, один серый другой на лево.
А как релизовать вообще подобные уведомления? Что делать на консумере? Я бы хотел такое запилить, но хз как пользователю это на экран вывести, тк никогда подобного не делал
Нет, просто они более нагло накручивали себе циферки.
Тебе желательно никак - это много мозгоебли ни к чему. Лучше выводить на консольку и сохранять еще в одну базу(можно в эластик например или в редис).
Но если очень хочется, то через вебсокеты или подобные штуки. https://www.endpointdev.com/blog/2021/01/messaging-app-spring-kafka-pt-four/
Должен быть один, но есть 268.
А почему именно мне никак? Чем я хуже?
И что такое эластик вообще? Ну точнее я то загугли что это, но не понял, какие у него вообще могут быть реальные кейсы применения
>А почему именно мне никак? Чем я хуже?
Ну ты додик, тебе такое не по зубам.
>И что такое эластик вообще?
https://habr.com/ru/company/otus/blog/490232/
>А почему именно мне никак? Чем я хуже?
Потому что современный фронт это отдельная профессия, причем не такая простая. Как минимум разобраться в нем займет немало времени, которое ты мог бы потратить глубже разобраться в профессии бекендера-джависта.
>И что такое эластик вообще?
elasticsearch. Специализированная неряляционная бд для полнотекстового поиска.
А что без глубокого погружения в фронт уведомления сделать не выйдет? Я вот реактивный спринг для этой хуйни тож учить не особ хочу, но думаю написать один класс, который будет там этот флукс отдавать или делать что-то вроде этого, будет не так уж и трудно. По крайней мере надеюсь мне пары видиксов хватит. Надеюсь с фронтом так же…
Ну я когда повторял видосы и статьи с вью и ангуляром - у меня жопа сгорела от непонимания. Ну и там обратная совместимость везде по пизде. Библиотеки в статьях latest, и они не работают нихуя, а какие имелись ввиду на момент написания статьи - я хз. Плюс разбираться с нпм, ярном, бабелем подзаебался, там нельзя прости кинуть конфиг. Нужно в консольке вызывать команды по добавлению зависимостей(если можно, это не претензия, просто я ебал в этом разбираться). Особенно от вебпака горело.
Ну и я забил нахуй и на голом жс без ноды написал простой spa без роутинга. И даже на него я потратил недели три. И к концу петпроекты после 500 строчек кода, было больновато менеджить компоненты написанные на голом жс без понимания архетиктуры. Вебсокеты без понятия можно ли написать без фреймворков.
В итоге потуги во фронт ни на йоту не пригодились на работе.
С вью дока лучше всех статей, с ангуларом не лучше, но тур героев в помощь. Печально конечно, что авторы статей мудаки, но с одной стороны, можно найти других, а с другой, не так уж всё и сложно.
Зато ты получил бесценный и такой редкий сейчас опыт ебли на голом жс.
А без спа, на обновлениях странички нельзя было сделать? Ты хоть бы джиквери подтянул бы.
Жвм в расчет не берем, есть другие языки, которые с ней под капотом работают
В жабу дохерища вкатунов, ощущение, будто каждый 3 в мвп треде пишет на жабе, да и этот тред не спроста один из самых активных, вкатышей хватает. Я бы сказал, что вакансий достаточно пока, чтоб более-менее удовлетворить спрос, но это только пока.
Вообще я имел ввиду именно возможности языка, а не контингент, который на нем пишет.
Не увидел смысла. Все работало на fetch для вызова рест эндпоинтов и append и remove элементов из дом дерева. А на чтение доки того что может никогда не пригодиться я не хотел тратить время.
Я писал до этого пет на шаблонизаторах с обновлением странички, но мне нужно было отработать работу с RestController и Jackson.
Думал для следующего пета, уже третьего - читать доку реакта, по буквально после первой страницы get started меня позвали на собес, куда я в итоге устроился. В итоге за полтора года фронт не пригодился не разу. По сути даже инвестиции времени в изучение голого джаваскрипта никак не окупились. Лучше бы задачки по sql решал.
В мвп может быть. А вот на хедхантере не так много резюме. Вот фронтовичков и питонистов прямо до жопы. Шарпистов почти столько же как и джавистов, при в трое меньшем количестве вакух.
В небольшую по меркам джава-проектов галеру на новый проект на местный рынок. Новая джава, микрочелики, кафка. Подробнее дианон.
А че в какой-нибудь сбер не пошел или другой банк? Не предлагали или самому интереснее было в эту контору? Я вот тоже щас просто думаю, куда идти, в банк какой-нибудь с 8 или дай бог 11 жабой, или мб начинать искать чет поменьше, но зато без такого количества легаси, которого в банках как мне кажется просто до пизды.
По сути не предлагали. За период поисков два раза на меня выходили херки из сбера и пропадали.
Да бля, че реально все идут в жабу только из-за работы и бабок? Идейные тут есть вообще или у вас завтра смена на галере?
А в чем идея? Топить за технологии написанные не тобой и большие корпорации, потому что они возможно на пару процентов удобнее чем другие?
Это какое то быдлячество, почти как у футбольных фанатов.
Хуй тоже инструмент.
Ну как минимум исходя из того, что технологии пишутся под определенный язык, а не язык под технологии
Мне не кажется, что это правда, но если это так оно и есть, то это как-то грустно. Хотя я слышал в шарп вообще идут только гомосексуалисты, тк работы там нормальной нет, в основном платят долбежкой в задницу.
Ну я выбрал джаву, потому что это бекенд. И потому что на нем пишут преимущественно большие системы. И чтобы много работы.
Из технологической стороны мне хотелось статическую типизацию.
Шарп с технической точки зрения не зашел лишним сахаром на понимание которого надо тратить время. Го с технической стороны даже и не знаю минусы. Но там экосистема молодая и меньше готовых решений. У меня нет желания писать велосипеды для прикладного кода.
Идейные это скалисты наверно какие-то.
Генерь из кода и не еби мозги.
Если кто-то ебет мозг про api-first, тот пусть и помогает тебе настроить конфиги.
Нужно будет сделать в качестве зачетной работы за семестр игровой движок. Например подобной darkwalllke.itch.io/simple-rpg
что-нибудь по этой теме.
Почему ты такой бука 🥺
Спроси в геймдев треде.
Здесь сидят если не промытые спронго-тырпрайзники, ничего кроме говносервисов в своей никчемной жизни не писавшие, то шарписты, для которых ты со своей инициативой - пища. Конструктива ни от тех ни от других ты не дождешься.
>>25858
По теме - в джаве есть довольно много движков, на которых можно было бы слабать чето подобное пикрилу. Проблема в том, что они - разной степени готовности, и когда садишься на них чето делать, очень быстро упираешься в какие то ограничения. Начиная от отсутствия фич, и заканчивая отсутствием документации.
Если бы передо мной стояла задача слабать ченить подобное пикрилу на джаве, я бы попробовал https://litiengine.com/.
Ну описание эндпоинтов там нет, раньше в сваггере хотябы названия методов писались, теперь если у тебя 3 гет метода то наслаждайся
/entity в трех методах. Примеры значений на уровне "name" : "string". Да и еще много всего,намного удобнее заполнить один раз файл и пользоваться с комфортом
>удобнее заполнить один раз файл
А когда у тебя будет меняться апишка нужно менять в 2 местах.
Или надо контроллер из свагер файла генерить.
Тут был один чел, который писал в проде на api first. Мне кажется имеет смысл только если апишку может описать кто-то другой: фронт или аналитик.
Если ты ее сам всегда описываешь легче свагер генерить из кода, а для подробностей вешать анноташки.
>вжж-вж-вжжжжж-вжж-жжжж-вжж-вжжжжжж
Джавамуха обезумела. Сможешь ли ты совладать с ней? Успокойся! Никому твой свагер не всрался. Просто пиши руками свои гаденькие контроллеры и подключи какой-нибудь говноплагин, который тебе будет генерить свагер доку на твое помойное api. Потом где-нибудь в чатике кинешь апишку фронтам или кто там у вас этим говном занимается и все тип-топ.
>Приветик, можете что-нибудь подсказать в плане хороших материалов.? книг и прочего и прочего
Привет! Держи - https://www.amazon.com/C-Depth-Jon-Skeet/dp/1617294535
Самое простое это сделать на swing-е.
Смотри плейлист вот этого чумачечего японца и повторяй.
https://youtube.com/playlist?list=PL_QPQmz5C6WUF-pOQDsbsKbaBZqXj4qSq
У него разжевано просто пиздец и конечный результат похож на то, что ты хочешь.
Из книг параллельно бери книгу шилдта или хорстманна по джаве, скипай ненужные главы про БД/лямбды и прочую хуйню, читай про язык и свинг.
Можешь посмотреть какую-нибудь либу, специализированную на клепании 2д игорей. Например:
https://slick.ninjacave.com/
Или libgdx
Но это сложнее
Удачи
Как вы вообще до такого докатились, лол?
А если это название html файла, который будет отображаться ?
Присваивает пустыне значение "клетка".
Напиши свой адаптер без метода add, ты за паттерны не шаришь или че?
И сделай, чтобы дип копи элемента листа на каждый гет делало, тогда заживём
Джавист, 3 года опыта (банк)
Сейчас предлагают на работе новый проект: программировать под Java Card
Кто имел опыт? Или это болото и лучше туда не лезть?
Ты скорее у крестоёбов найдёшь таких анонов, чем здесь
Да.
Сильно тупил из-за непонимания предметной области, заёбывал тимлида вопросами, исправлял опечатки в текстах ошибок, писал юнит-тесты, копировал из джиры готовый код, написанный тимлидом, и коммитил. Такой кринж.
Дают задачки типа написать юниты, обновить версии библиотек, опечатки править. Потом добавить поле в дто. Потом написать очень простой эндпоинт.
Ну и если есть менторинг - задачи тебе распишут подробно, потом объяснят устно куда писать код, а потом напишут десятки комментов к твоему пулреквесту, где отметят говнокод, опечатки, несоответствие кодстайлу и гитфлоу.
Дали комп с интернетом, цель, ментора и неделю времени. Задача была - написать скрипт на незнакомую мне ось и на незнакомом мне языке, с использованием сетевых технологий, о которых я тогда не знал. Нихуя короче на тот момент я не знал, но "делай как хошь - сделаешь, значит годен на что то". Митап с ментором о проделанной работе раз в день, остальное время делай что хошь.
Лучшая стажировка из возможных, я считаю. Никакого пресмыкательства перед старшими, никакого чувства кринжа, чистый опыт, прогресс в удобном темпе, отношение в коллективе на равных, уровень ответственности только пониже.
Щас наверное такого не бывает.
Ну это такая проверка на умение гуглить и дебажить.
Для стажера наверно реально неплохой метод.
Для джуна скорее нет. Ему в первую неделю надо дать задачу связанную с вашим стеком, чтобы потом он доучил то, чего вообще не знает перед реальными тасками, которые надо давать уже через месяц. Потому что потом только остается всего лишь два месяца, чтобы его выпиздить в на испытательном, если не вывозит.
ПИДАРАС БЛЯДЬ ПОЧЕМУ ТЫ А НЕ Я СУАА!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Там был солевой шизик, которому в МВП треде заблокировали карту, на которую он попрошайничал. Он пыхнул и пошел вайпать весь программач.
Как же скучно я живу.
А, тот с операцией для кота, понял.
а так норм отработало и завершилось... не понял нихуя
Не использовать гредл, в мавене все работает
Может у тебя где нить затесался тред-недемон?
К примеру - ты в первом примере вон экзекутор создаешь. А треды в нем - демоны? Если нет - прога не выйдет пока ты этот экзекутор не прибьешь.
https://www.baeldung.com/java-daemon-thread
Если я правильно промню - нет.
Нет. Да.
Большинство проектов на джаве это и есть аналог серверной части проектов на 1с.
Там может быть прикол с инпут стримами от процессов. А если ты запускаешь через cmd еще, то там дочерний процесс может не убиться иногда. И типа хоть cmd и закрыт, а то что он открыл будет висеть. Проверь в диспетчере задач, че там открыто.
process.children().forEach(ProcessHandle::destroy);
можешь такое прогнать еще, если дочерние процессы живут.
нормальная тема, всё доступно. Очередной стотысячный круд. Гораздо хуже когда нужно что-то изобретать. Изобретировай
Ну хорошо, у кого тогда мне следует спросить? Тут вроде нет кубернетис треда, а в мвп треде одни тролли-долбоебы, которые скорее срыгос оформить пожелают, чем помогут.
Вообще жаба тред при том, что Я пишу на жабе, поэтому и задаю вопрос в родном жабаче. Тут хотя бы все люди взрослые 40+ лет, шансов быть посланным нахуй кратно меньше.
В нюфаг-треде.
А разве девопсам не похуй, че они там разворачивают? Всегда думал, что они просто следят, чтобы все работало как надо, но изначальную настройку выполняют согласно архитектуре, которую придумывают разрабы
Разрабы обычно на хую вертели архитектуру, похуй, как оно будет в проде, лишь бы локально запускалось. И отдают архитектурные вопросы на откуп тем же девопсам.
Ну тогда ищи тред архитекторов... ах да, тут же двощи, какие тут могут быть архитекторы...
Бля, как ты догадался, я ж даже пром назвал продом.
У них обычно нет особой возможности влиять на архитектуру и выбор решений, в итоге из сбера выходят не software engineer, a code monkey.
Ну ниче, хотя бы бабок залутаю
Лума один хуй не будет. Он бы мог поменять многое. Как минимум в реактивщине.
А паттерны в свищах это сахарок,функционал которого через паттерн стратегия один хуй чище.
Буквально пару дней назад был вот такой код у меня. Как прикажешь break collection; реализовать через стратегию? И таких случаев охуительные количества, когда на самом деле понимаешь, какие возможности паттерн матчинг даёт.
С той лишь разницей, что в сбере архитекторы - высоко летающие птицы с раздутым ЧСВ, код не пишут, рисуют в Visio схемки и получают от 400к. Каждый пук, связанный с интеграцией, надо согласовывать с ними, и если архитектор говорит "нет", тимлиды хуй что смогут сделать, приходится подчиняться.
А девопсы - такие же рядовые сотрудники, как и разрабы, разве что при возможности принимать решения архитектуру вероятнее всего придумывать будут именно девопсы.
Если ты вкатун вкатунов, то стоит прочитать самые основы и обращаться при необходимости.
я слышал кризис там из за войны какой-то...
Ну а так сейчас все на морозе, много сокращений. Откатится откатится - куда оно денется?
Откатится даже если нейросетки захватят мир - в какой то момент просто станет такой жоский недобор кадров, что будут готовы брать и учить. Мир без специалистов не останется, а каждый спец был джуном
Я тебе даже больше скажу - в джава-мире есть рофлы и поэпичней: https://www.graalvm.org/python
А еще смешней было с джаваскриптом на джаве: сначала долгое время был движок rhino, потом в восьмерке завезли ультрапупербыстрый и охуенно интероперабельный насхорн, пиарили его несколько jpointов подряд, а потом такие: йоу, ну тут оракл запилил граальвм, поэтому в следующем LTSе (11) насхорн депрекейтится.
Чтобы конфигурировать WebSphere.
Стоит
еда
Спасибо.
О вы из гарварда?
Все равно за стандартом жс хуй угонишься.
На трёх других бордах, ты хотел сказать.
Он самый.
Приветик) Что делать, если я будучи вкатуном была на 5 собесах и со всех получила оффер?)
Работать не пробовала?
Спасибо.
Как вообще вы относитесь к обратной совместимости в жабе? Все-таки это киллер фича или нахуй не нужна и лучше бы язык развивался быстрее без оглядки на предыдущие версии?
В жабе на хую вертели обратную совместимость. Ну то есть обновиться в принципе можно, но не тогда, когда любимый сервер приложений запускается только на 8 жабе, а на 11 при старте стектрейсит и умирает.
Никак не отношусь, что имеем то имеем.
>любимый сервер приложений запускается только на 8 жабе, а на 11 при старте стектрейсит и умирает
А это разве не проблема этого сервера? Почему жаба крайняя в итоге?
Я другой анон, но согласен с мнением.
Жаба, как платформа, а не как язык. Ну и как язык введение модулей в джава 9 сломало обратную совместимость.
Да и большинство на 8ке это что-то из позапрошлого года. Сейчас дай бог 40%. Вот статистика почти годовалой давности. И в рф с обновлениями даже чуть получше.
Лум не так интересен для клепания бизнес-тасок.
Пересядут тогда, когда даже древние версии фреймворков будут поддерживать эту версию джавы.
Смеешься или правда не понимаешь? Везде, где есть высокая нагрузка и многопоточность.
На высокой нагрузке ведь обычные треды ос лучше. Как зелёные лумовские треды мне помогут на обычном спрингбуте с томкатом и постгрей?
Фактически, при луме без явного указания того, что тред ос, вместо создания обычного треда будет использоваться сорт оф тред пул. Низкоуровневый, с оптимизациями стека и вообще красивый. Это гораздо выгоднее создания обычных тредов и даже создания обычных тред пулов - в приложении нет смысла гонять обычных тредов сильно больше, чем ядер/потоков исполнения, которые предоставляет ос.
Но оума не будет в 21 вне превью. Следующий лтс ещё через два года. Ещё через выйдет томкат и спрингбут под лум. И ещё через год можно тащить в прод.
Короче через 5 лет.
Так сам же сказал - сервер. А джава тут причём? В том то и дело, что при апгрейде отваливается всякое душное говно типа спринга. Ломбок стабильно апгрейдить ещё надо. Понапишут говна, а виновата джава.
>Но оума не будет в 21 вне превью
Все так, поэтому эта лтс нахуй не нужна. Следующей лтс, которой будут действительно пользоваться, будет лтс с лумом.
>На высокой нагрузке ведь обычные треды ос лучше.
На высокой нагрузке как раз именно ОС-треды начинают сосать бибу. Ибо они хуево масштабируются: нельзя, имея нагрузку в миллион запросов в секунду, создать для их обслуживания миллион тредов - весь проц тупо на скедулинг уйдет. В такие моменты приходится врубать NIO и исхищряться в стиле "джаваскрипт", аля, "как бы нам, имея один железный тред, получить параллелизм для миллионов запросов в секунду?". Ну а это литералли определение "зеленых потоков".
С точки зрения кода, абстракция - переиспользуемый компонент, описывающий цель или намерение, но не конкретный алгоритм достижения этой цели. Антоним абстракции - конкретика (или имплементация).
Когда дог - это анимал.
Тогда четче define "тяжесть".
Если тяжелые вычисления - то да, от зеленых потоков может быть оверхед в зависимости от их имплементации. Но тырпрайз же редко про тяжелые вычисления. Обычно тырпрайз - это история про то, как клиент делает реквест, который триггерит кучу ввода-вывода в СУБД и соседние микросевисы, и под высокой нагрузкой в тырпрайзе имеют ввиду в первую очередь большое количество запросов к сервису.
По умолчанию под хайлоадом понимают большое число пользователей/запросов, если не говорится обратного.
Это когда аб4срался
Если тян то мужики прям сильно гноят на собесах будто всю свою девственность за 30+ лет отыгрывают ,хз откуда вы все взяли что если тян то просто устроиться
Ага,мое резюме тоже отклоняют постоянно,ощущение что большинство вакансий просто для вида,причем их ещё копируют по 100 раз и в итоге постоянно на одно и тоже откликаюсь, а новых вакансий и нет будто
Я знаю что говнокурсов расплодилось немерено, следовательно выпускников этих курсов дохуище, а рынок в упадке т.к. многие компании свалили.
Когда-то давно учил джаву по галопам, дошел до спринга но потом забил, сейчас планирую серьезно учить.
28 лвл, образования технического нет. Каковы мои шансы?
Смотрю резюме других людей в моем городе, 600-700 резюме и 3 ВАКАНСИИ !
даже не знаю как ответить. Я уже серьезно настроился, просто хочу знать свои шансы. А то читаю вакансии, а там везде либо студентота, либо с образованием техническим на позицию стажера.
Нет, не стоит.
Сходи на собес да узнай. Смысл спрашивать мнения двощеров об этом: тебя тут щас зарядят пессимизмом - точно не вкатишься.
Вкатиться вполне реально. Просто сложнее раз в 10, чем до сво.
Наш тимлид берет достаточно дубовых джунов. Уж как они доходят до собеса - хз.
Чел, вкат всё. Уже даже инфоцыгане признают это. Теперь только через университетское образование и стажировки. Эра случайных людей в профессии закончилась. Почему ты не спрашиваешь, можно ли вкатиться на работу хирурга? "Я вот 4 месяца атлас по анатомии почитал, гистологию тож чуть-чуть. В школе лягуху резал, свинину разделывать умею" А зарплатка у хирурга огого. И очень уважаемый человек.
Если хочешь относительно быстрый способ вката и джобсекурити - выбирай курсы сварщика. Никаких постоянно новых фреймворков, тебя не заменит чатгпт, у тебя всегда будет работа(танки варить) или какие-то шабашки(ворота заварить петровичу).
>>28782
Удачи попасть на собес, когда там на вакансию джаваджуна прилетает 1.5к откликов
Если тебе меньше 25 и есть техническое образование + лет 5 опыта - то стоит.
Нет.
пойдешь ты причем нахуй
так ладно, но прочитать годную книгу я хочу в любом случае
напомни годную книгу по самой жабе, jvm, гк, чтоб я мог после неё охуенно блеснуть знаниями словно помидор по всяким внутренностям
И нахуя мне ты и твоё мнение? Мне в целом похуй на твоё пожелание удачи - трудоустроен и давно как синьор. Но даже если б я был вкатун, что бы мне дало вот это вот твоё полотнище?
Ты сам то настоящий сварщик, или просто советы раздаешь?
По жабе двухтомник Христиана, потом Блох.
Да
ага
В методе <init>
Ну и вкатуны пошли. Локальные переменные и параметры конструктора хранятся на стэке. Объект, который конструктор возвращает, хранится на хипе.
>>29572
Почему не могу сделать депенденси в мавен проекте это что за прикол не пойму?
так же тогда вопрос, почему не смог сделать импорт локал тайм в jsp файле? в еклипс просто напрочь не хочет его туда вставлять и импортировать.
Хз, много лет не сталкивался с такими древними технологиями, как JSP, а вместо эклипса у меня idea.
>Хз, много лет не сталкивался с такими древними технологиями, как JSP, а вместо эклипса у меня idea.
я просто прохожу обучение с тореннта там и про jsp. впринципе я могу это не делать,но всё таки ручками нужно попробовать а он сука локал тайм не прописывает как у препода с видосика , тоесть не могу сука сделать самое простое и не могу понять почему ведь по факту похоже делаю всё тоже самое
я про это. вот
Может, версии отличаются. Попробуй поставить те же, что у препода, чтобы эклипс, версия джавы, версии зависимостей и сервера приложений были те же самые.
На работе тимлид будет вести за ручку.
Надо знать для собесов.
> что изменится если ораклы поменяют реализацию?
То же, что и всегда, выяснится, что для очередной очень важной либы это критично, и все будут по 5-10 лет сидеть на предыдущей LTS-версии.
>древними технологиями, как JSP,
поясни, даже работая с аннотациями и рестфуд апи приложениям в этом курсе а он не старый 2019 года вроде, работа с серверлетами происходит настройка через jsp . я не понял что сейчас типо новое молодёжное?
как сейчас происхдит с нывыми технологиями?
JSP в этом курсе просто потому, что на нём легче объяснить MVC. Не затирать же новичку-джависту про жаваскрипт, ноду, реакты и редуксы. Совсем без UI невразумительно, типа "смотрите, у вас есть контроллер, живущий по такому-то урлу, дёрните его через curl из командной строки, получите жсон, всё, идём дальше".
Краткие вводные такие: 4 курс универа на it специальности, через полгода получаю диплом. Параллельно работаю ждуном-кодомакакой на джанге, по факту классический крудоеб сборщик джсонов. Из навыков с работы и уника имеется 2 года опыта работы на джанге + sql, postgres, git, docker, какое-то понимание алгоритмов и структур, БД, ООП + еще в унике был курс по джаве, так что пусть и весьма поверхностно, но я с ней знаком и сдал на ней с десяток разных лаб.
Теперь к сути: мне очень хочется в ближайшем будущем получить blue card и релоцироваться в Европку, но на данный момент, очевидно, мне не хватает ни знаний, ни опыта конкурировать с тысячами других голодных миддлов. В связи с этим я решил перейти на джаву (больше вакансий) и плотненько за ~год ее задрочить до состояния, когда смогу выбить себе оффер в Европу. Прошу опытного анона помочь и порекомендовать мне
1) Список того, что обязательно должен знать хороший java-middle. Помимо базы типа спринга, мавена и хибернейта хотелось бы что-то услышать про хайлоад, микросервисы, кафку и тп. Для меня сейчас это темный лес и я не понимаю ни насколько это важно при устройстве на работу, ни где вообще можно было бы получить соответствующий опыт при самостоятельном изучении
2) Годную литературу по джаве и спрингу, чтобы после прочтения можно было смело заявить, что я их хорошо знаю.
3) Советы и опыт в целом по перекату в европку в качестве рабочей лошадки, подводные камни и все такое
Project Loom
Добавляют легковесные виртуальные треды, внешне похожи на обычные системные треды (которые долго создаются и жрут по мегабайту памяти), но их можно создавать тысячами и запускать в них блокирующие операции.
Поменяй условия вокруг && местами. Вычисление происходит слева направо, и твоя проверка, что ты не вышел за размер коллекции, сейчас выполняется уже после обращения.
да, спасибо, как раз минуту назад догадался)
>2) Годную литературу по джаве и спрингу, чтобы после прочтения можно было смело заявить, что я их хорошо знаю.
по спрингу нет нормальной литературы, одно говно, причем хуже чем курсы даже
Я смотрел курс какого-то негра, он там сперва Spring Core разбирает, а потом Spring boot.
https://nnmclub.to/forum/viewtopic.php?t=1442719
вот ссылка. Он смешной клоун конечно, но в отличии от книг, которые обычно советуют читать (Spring in action например) у него все систематически разложено, нет больших пробелов и после просмотра (прочтения) не складывается ощущение что тебя где-то наебали с магией спринга. Да, воды нмого но можно ставить быструю скорость и перелистывать ролики где оно в сотый раз делает одно и тоже.
Дальше в любом случае читать документацию на сайте, потому-что одного лишь негра не хватит. Смотрел негра 2 года назад но так и никуда и не устроился, тупо забил, сейчас решил по новой попробовать вкатиться
есть еще книга
https://nnmclub.to/forum/viewtopic.php?t=1285616
но мне показалось там черезчур заумно все написано и не совсем понятно когда ее читать. Для вката не зайдет (тупо ниче не поймеш), а после чтения доки уже и не нужно.
Единственное что, у негра нет микросервисов и никакого хайлоада, тут я не помощник когда первый раз вкатывался в джаву не дошел до этого уровня, но думаю тут придется все же освоить какие-нибудь специализированные книги
Да.
Конечно нет.
Если ты выбрал фракцию Монолит, то все микросервисные технологии становятся красненькими и недоступными, как в рпг.
Нет ещё, но звучит так будто стоит. Спасибо
У Козьминой нет ничего особо заумного. Там проблема, что там описаны легаси способы работы со спрингом даже на момент написания. А сейчас больше 5 лет прошло с написания. Может в 6 версии исправили и убрали легисятину, но я не уверен.
я не расист.
Пасиба анонче, схоронил
Не хотел бы я увидеть это в шапке следующего треда..
большая лепёшка
что за контора?
Это копия, сохраненная 27 апреля 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.