>>2329477 >Что такое лайв кодинг на собесе стажера? Кто-нить может пояснить?
Во время конфы внезапно открывается Notepad++ В нем наваян предварительный код и текст "допишите как решить такую задачу". Ты пишешь и параллельно вслух озвучивает, почему ты так пишешь и какие у тебя идеи. Не молчишь.
Косяки допустимы. 4 прогера даже помогали, указывали, где мне исправить, потому что я им понравился и они хотели сами, чтобы я лайвкод всё-таки пошел.
>>2329537 Вот оракл стала перекатывать джаву каждые полгода и к чему это привело? Лум уже давно бы вышел, но его не успевают постоянно засунуть и потестить из за частых релизов.
>>2329753 Дань уже ушедшей моде. Пока все популярнейшие прогрессивные языки (Js, python, c#) пересели на практичный async await, деды из оракла вдохновились говноголангом с его горутинами
>>2329766 ТЫ - ОБЫЧНЫЙ СЫЧ-КАБАН @ ВЛАДЕЕШЬ ИНТЕРНЕТ МАГАЗИНОМ @ ПО СОВЕТАМ С ДВАЧА РЕШИЛ РАСПИЛИТЬ СВОЙ СТАРЫЙ МОНОЛИТ НА КУЧУ МИКРОСЕРВИСОВ @ НАНЯЛ 50 СИНЬОРОВ @ ПЫХТЯ И НЕВЫСЫПАЯСЬ, ЧЕРЕЗ ПОЛГОДА НАКОНЕЦ ТО ОНИ РАСПИЛИЛИ МОНОЛИТ @ ТЫ РАДИ ЭТОГО ЗАЛЕЗ В КРЕДИТЫ НА 5 ЛЕТ ВПЕРЁД @ ТВОЙ МАГАЗИН ЛАГАЕТ КАК СУКА, НИКТО НЕ ПОКУПАЕТ НИЧЕГО @ ЕРОХА НАНИМАЕТ ДЖУНА С 5 МЕСЯЦАМИ СТАЖА И ПОРУЧАЕТ ЕМУ НАПИСАТЬ ПРИМЕРНО ТОЖЕ ЧТО И У ТЕБЯ, НО МОНОЛИТОМ @ ЧЕРЕЗ НЕДЕЛЮ ПРИБЫЛЬ ТОЛЬКО ЧТО ОТКРЫТОГО МАГАЗИНА ЕРОХИ БОЛЬШЕ ТВОЕГО @ УЛЕТАЕШЬ НА ЖОПНОЙ ТЯГЕ В РАЙ ДЛЯ СЫЧЕЙ
>>2329523 Двачую, блять, это пиздец, коллеги скуфы старше лет на 10-15, темы для разговора кроме работы - это дети, политика, мемасы с пикабу и фотки котиков.
Нахуй я в жабу ебучую вкатывался, надо было жопаскрипт дрочить.
>>2329771 >>ВЛАДЕЕШЬ ИНТЕРНЕТ МАГАЗИНОМ >>НАПИСАННОМ НА ДЖАВЕ Дальше мог не продолжать. >>2329770 >>НЕСКОЛЬКО ДРУГИХ ПЕРЕСТАЛО РАБОТАТЬ Так бывает, когда вместо монолита пилят распределенный монолит, думая что это и есть микросервисы.
>>2329790 > Так бывает, когда вместо монолита пилят распределенный монолит, думая что это и есть микросервисы. Так бывает, когда какой то даун делает геттеры не протектед или вообще поля класса публиком и что самое интересное этим кто-то потом пользуется
>>2329793 >>У меня половина коллег тру-двачеры Эх мне бы хоть одного двачера, а то какие то нормисы кругом, я пошутить лишний раз боюсь, чтоб ебанутым не посчитали.
>>2329766 >ПОМЕНЯЛ НАЗВАНИЕ ПЕРЕМЕННОЙ >@ >БИЛД СОБИРАЛСЯ 4 ЧАСА >@ >НЕ ЗАПУСТИЛСЯ
КЛИКНУЛ ПРАВОЙ КНОПКОЙ МЫШКИ ПО НАЗВАНИЮ ПЕРЕМЕННОЙ, ВЫБРАЛ "РЕФАКТОР" @ ПОМЕНЯЛ НАЗВАНИЕ @ В ПРЕДЕЛАХ СЕРВИСА ВСЁ ОК ПОМЕНЯЛОСЬ @ ПАРСЕРЫ ДРУГИХ СЕРВИСОВ ПОЛОМАЛИСЬ
>>2329795 >>геттеры не протектед Ты че ебанутый? Гетеры ломбок пишет, они всегда паблик. Не любишь гетеры - пиши билдер или конструктор на все поля >>поля класса публиком Такое не должно код ревью проходить.
>>2329827 Нахуй мне питухон? Я на реактвной жаве с микросервисами пишу. Ты просто закостенел со своим ООП и не видишь что джава сильно поменялась за 20лет.
>>2329830 Деградировала, да. Лучшее развитие джавы было бы если бы из неё выпилили статик. Пока что ничего лучше ООП не придумали, и не придумают никогда. ООП это развитие из функционального стиля программирования, петухоны и прочая хуйня это деградация туда обратно.
>>2329827 > Джава - это прежде всего ООП То-то его свели к процедурщине, введя anemic model, и теперь в жабе только структуры, процедуры и модули, которые почему-то нужно называть сущностями, методами и сервисами. Собаки не умеют сами лаять, делать это нужно через СобакаСервис.
>>2329838 Ну вот это хуйня ебаная и джаву испортили кабаны-пидорасы-долбаебы, которые не думают на 3 минуты вперёд и которым нужен сиюминутный результат, который быстрее всего достигается написанием кривой процедуры (даже не функции лол, процедуры ебаной)
>>2329843 Гораздо более расширяемо. Ноль багов. Если и есть дебажатся за 2 минуты. Код в сто раз более понимаем, в уже написанную кодовую базу в ооп стиле не придётся по сто лет вникать, можно просто сесть и продолжить разработку.
>>2329851 К процедурам относится гомоебля, дебаг в 5 часов ночи, охуенные выплаты клиентам из за того что они проебали дохуиллиард из за скрытого бага, методы на 5 тысяч строк и с 10 отступами, ситуации, когда переписать код с нуля раза в три легче чем просто тупо вникнуть.
>>2330039 Это классно, когда нужен стандартный геттер или сеттер, а если планируешь написать что-то с дополнительной логикой, то придётся заводить дополнительную приватную переменную. В итоге у тебя будет балласт в виде свойства и дубликат в виде приватной переменной.
>>2330086 Встречный вопрос: а нафига они тогда нужны? Не проще сделать поле публичным? Вся суть геттеров и сеттеров - это дополнительная логика при изменении полей класса.
>>2330039 >>так писать: тебе хочется геттер и сеттер отдельно для каждого поля прописывать, еще и поля публичными оставить? Тогда так. Знак вопроса это нулабл или нотнал? Если что и такие аннотации есть.
@Getter @Setter public String kokoko;
>>2330074 >>что-то с дополнительной логикой не надо писать логику в геттерах, назови метод add, setup или еще как нибудь. но не гетером.
>>Вся суть геттеров и сеттеров 1.по привычке пишешь .get и смотришь че там в классе есть, какие переменные. 2.поддержать работоспособность всяких хибернейтов 3.можно писать гетеры в интерфейсах для магии с генерацией сущностей из базы
>>2330669 Ну а чё, тырпрайз на дотнете сильно отличается от того что написано? Или бекенд на питоне/пхп? Ходишь в базу, ходишь по хттп апихам, сам отдаешь всякую муть по хттп, ну и через брокеры сообщений тоже пуляешь/принимаешь.
>>2330669 Почему тогда нет нормальной инфы по всем этих технологиям? Обычно изучение Спринг - это грузят абстрактными бинами, типа какой-нибудь клоун жонглирует шариками. А вот конкретно про все эти JPA нигде не пишут.
>>2330752 Открой книгу по жпа. Она до сих пор топ. По спрингу козьмину почитай, может зайдет. И как надо грузить спрингом, если не абстрактными блинами, если спринг из них состоит?
>>2330872 Это не значит, что тян хуёво разбираются а программировании в силу каких-то врождённых особенностей. Это значит, что каждая тян, решившая вкатиться, встречает сотню сексистов, которые ей говорят "у тебя хуя нет, какое программирование?", И только единицы, не сломавшиеся под общественным давлением, вкатываются, да и там стакюлкиваются со стеклянным потолком и людьми вроде тебя.
>>2331103 Это не гормоны. Кунам с детства говорят "тыж мужик, плакать нельзя, смеяться нельзя, вообще эмоции показывать нельзя". А тянам не говорят. У кунов тоже скачет настроение каждые 10 минут, но они учатся его подавлять с самого детства. А тяны не учатся.
>>2331103 >>2331145 >>2330838 у ж*нщин интеллект на 80 пунктов iq в среднем ниже, чем у кунов, какое программирование, долбаебы? для тянов построить цельное предложение непосильная задача, а вы хотите чтобы эти животные занялись высшей интеллектуальной активностью и начали программировать, лол
Где взять именно подработку, чтоб можно было работать 1-2 дня в неделю? Любая работа на Java, уровень где-то на границе мидла и сеньера-самозванца. Может вам нужен помощник или консультант? Опыта дохуя.
А то все что я находил хотят мою душу полностью, а я хочу заниматься еще и своей игрой.
>>2331510 Эх, сам бы с удовольствием на такую устроился. Охуенно было, пока учился в вузе, на работе разрешали работать 20 часов в неделю. А теперь я учусь в аспирантуре и нихуя не успеваю.
>>2331845 Нашёл только лекции с хреновым звуков для студентов. Где мотивационные видео, что у меня получится изучить джаву? Где свежие видео: какой язык выбрать в 2022 году? И чтобы там обязательно было сказано, что надо учить джаву, а не сишарп. Ещё он пиарит идею, а она платная.
Видали какой лагкомпенсации и клиентсайд предикшна я добился? И это через интернет, а не локально. А говорили велосипеды это плохо и на все есть готовые решения. Сейчас бы с скими нибудь движком слал бы тонны говна вырывая гланды через жёпу, а так трафик минимизирован, все тонко и велосипедируется максимально только в нужных конкретных местах.
>>2332301 Синхронизация по TCP байтами (к примеру пакет позиции актора игрока - 8 байт (два флоата)) Всякая метаинформация типа "игрок такой-то зашел на сервер" JSON-ами, но не по ресту, а так же TCP байтами UTF-строк (на получателе преобразуется в Dto-хи).
>>2332304 >Всякая метаинформация типа "игрок такой-то зашел на сервер" JSON-ами, но не по ресту, а так же TCP байтами UTF-строк (на получателе преобразуется в Dto-хи). А зачем, когда есть бинарные протоколы, типа protobug, bson, cbor, messagepack и в конце концнов просто сериализация джавы? А еще RMI.
>>2332369 А зачем, когда есть бинарные протоколы, типа protobug, bson, cbor, messagepack и в конце концнов просто сериализация джавы? А еще RMI. Мне не сложно отправить classname+JSON. Не хочу использовать обертки над обертками.
>>2332372 Могу пока GZIP-ом сжимат. Я, конечно, когда-нибудь приду к тому чтобы это оптимизировать. На этом этапе не охота заниматься оптимизацией, ты представь, это сейчас надо реализовывать кучу контрактов, поддерживать версии протоколов на клиенте и сервере. Сейчас проще сбилдить Dto-шку и послать в метод send и быть увереным что получу ровно то что и отправил без пересборки неба и Аллаха.
Аноны, как в классе Main получить доступ к содержимому папки resources, а конкретно к файлу static/index.html? Обычно советуют получать ресурсы как Main.class.getResource(), но, насколько я понял, ресурсы таким способом можно вытащить только те, которые лежат непосредственно рядом с классом Main. А если на несколько директорий выше нужно подняться, как в моем случае?
Нашел какой-то способ через Main.class.getProtectionDomain().getCodeSource().getLocation() получить корень (корень чего кстати?) папки с классами/джарника и оттуда уже вытягивать что в ней лежит.
Есть какие-то более удобные способы? Сама задача состоит в том, чтобы прописать в jetty папку, где хранятся статические хтмл. Может я вообще не туда воюю.
>>2332417 Где подробнее узнать про деплой статики? Пока что я делаю так: прописываю пути к сервлетам, потом накидываю ResourceHandler, в котором указываю путь к статике, после чего все запихивается в сервер. Как вообще со статикой работать? Я надеялся, что можно все удобно будет положить в папку resources, содержимое которой в джарник попадает при сборке. Итого сервер будет представлять собой один единственный джарник, который одной командой можно запустить. Или в действительности всю статику отдельно нужно хранить?
1. Статика делается отдельным проектом, деплоится отдельно в nginx 2. Может быть написана на чем угодно, реакт, вуе, и тп 3. Бекенд экспозит эндпоинты (апи) для статики 4. Бекенд деплоится отдельно, как джарник, может быть даже на другом сервере/VM-е 5. Статику деплоят в CDN, чтобы она раздавалась быстро с edge серверов ближайших к end-юзеру
.. Перед бекендом может стоять еще лоад балансер и API gateway который будет роутить запросы от статики в нужный сервис, но это тебе не надо сейчас..
>>2331612 Я уже какую сотню раз натыкаюсь от женщин "у меня не получается, я психую, сделай за меня" вместо "натолкни на верную мысль, чтобы я решила сама".
Оригинал письма на английском. Чел через Гугл переводчик прогнал. СЕО Аркадий сокращает свое имя до Ark. Гугл перевел как Ковчег.
Вот оригинал из рассылки.
Dear Colleagues,
The war in Ukraine, started by the Russian government, has brought a tragic and unimaginable reality to the people of Ukraine, the entire world, and to EPAM. The aggression recently revealed is devastating, and we condemn it in the strongest possible way.
On March 4 we announced our decision to discontinue services for customers in Russia. After careful evaluation of our operations during the past four weeks, and in consultation with our global customers and partners, we have decided to end all EPAM operations in the country. This effort will be completed in phases over the next three months, in close collaboration with our people and our customers and fully within all applicable laws. While we will be sharing additional details over the next several weeks to ensure all our employees in Russia and our customers understand the transition timeline, process, and any mitigations we can offer, we also will continue to do everything possible to create opportunities for our people in the country globally through accelerated BCP plans and significantly scaled up mobility programs.
Since the war started, we have committed $100 million in humanitarian assistance to Ukrainian EPAMers and their families. In the next few days, we will be announcing the launch of the ‘EPAM Ukraine Assistance Fund’ whose mission is to assist all Ukrainians in need, and which will extend our previously announced commitment to help beyond EPAM and our current platforms. While the needs for help are greater than we, as one company, can fulfill, our goal is to work in conjunction with our people, customers, and partners as a global community to help Ukraine and the people of Ukraine everywhere.
Thank you for working together to ensure the safety of our people and continued service to our customers. No other company is as deeply or as personally affected as we are. And today, more than ever, we stand with Ukraine and with every government, business and person who denounce the actions taken against the people of Ukraine.
On Friday afternoon, we will have an all-hands Townhall for our employees in Russia to provide additional details and to address questions.
Please stay safe, support each other and those closest to you and join us in working for a real and lasting peace.
>>2332417 > Main.class.getResource(), но, насколько я понял, ресурсы таким способом можно вытащить только те, которые лежат непосредственно рядом с классом Main Поставь / в начале пути
>>2332865 Выбор то небогатый. Мне больше нравится thymeleaf из за того что работает с html, а при желании можно распилить на фрагменты и шаблоны. Но и freemarker наверное не хуже, если тебе надо просто накидать шаблон для письма.
На дворе 2022 год, но нет ни одной адекватной книги по Spring. Везде 90% какой-то фигни про бины и быть может 5% посвящено веб-приложениям. Естественно, там нифига не объясняют даже как сделать простое REST-приложение. Из шаблонизаторов только JSP, а про остальные они даже не слышали. Хотя очевидно, что проще использовать тот, который ближе к реальному html-коду, а не абстрактный xml.
>>2333238 < На дворе 2022 год, но нет ни одной адекватной книги по Spring. Потому что ты ищешь на русском. > Из шаблонизаторов только JSP, а про остальные они даже не слышали. Они все одинаковы, и отдельно писать книгу про то, что и так рассказано в документации, смысла нет. В отличие от спринга, в них нет глубинного смысла. > Хотя очевидно, что проще использовать тот, который ближе к реальному html-коду, а не абстрактный xml. Ближе всего к реальному html реакты-жопаскрипты.
Может не стоило уходить с сишарпа, там вроде как единый стандарт, но зато доведён до ума. А на джаве миллион технологий, но как ими пользоваться - никто не пишет...
>>2333245 Когда чел говорит что не хочет xml, а хочет html, подразумевается что будет какое то качественное отличие, а не те же тэги+атрибуты которые необязательно закрывать.
>>2333250 Выше на видосе пояснили что ораклу была нужна джава просто чтобы запрыгнуть в уходящий поезд, который прошел уже давно. А раз прошел, акулы бизнеса потихоньку избавляются от неликвидного актива еще с 8 версии, разделяя его по частям то индусам, то организациям. То есть фрагментация экосистемы будет только нарастать.
>>2334633 Спасеба. Я пока не замечал стоп ворлда (на видео бывает лаг при записи). Если замечу, то постараюсь сократить количество new. Если не поможет, взгрустну и забью (не на игру, а на стоп ворлд).
>>2334611 >>плагин STS доступен для Eclipse Потому что это плагин для эклипса который пилят на идее, а не для идеи. Идея ультимейт из коробки умеет гораздо больше.
>>2334649 Если совсем пиздец будет можно попробовать гц без стопзеворлда. Хотя на сколько я помню он и в стандартном происходит только при заполнении памяти на 99%+.
Я вот думаю, можно, чтобы гц триггерился часто, но на малом хипе, тогда паузы должны быть очень короткими. И можно попробовать узнать, как в Майнкрафте сделано
Ну вы даете, конечно. Сейчас на мобилках с энергоэффективными (читай маломощными) арм процами в браузере запускают тридэ игры написанные на жиэсе, а вы за гц в жабе переживаете.
Я пока не нашёл работку, но кожу довольно много, и часто за собой замечаю, что я могу кодить часов по 50, а потом скомпилить и запустить всё написанное без багов. Это я так медленно кожу, что всё что делается за 10 минут у меня растягивается на 50 часов и сотню классов? Или че?
>>2334894 OutputWriter это сразу запись и отправка по сети прямо из геймлупа что ли? Если так, лучше юзать ArrayDeque, он не блокирующий. Геймлуп в него будет класть команды не дожидаясь отправки, а другой поток в цикле while(true) их доставать и отправлять, можно даже по таймеру.
не подскажете насколько сложно попасть мидлом скалистом в тинькофф? у самого опыта на скале где-то 9 месяцев на позиции джуна, идти опять куда-то на джуна чет не хочется, если брать общий опыт в ит, будет где-то 1,5 года мне пизда?
>>2332650 Потому что если не влезать в кишочки там все элементарно. Его же и придумали для того чтобы все было быстро и просто, слышал же выражения "магия спринга"?
Всю жизнь гонял тесты на мавене и был счастлив. Просто подменял testng.xml и вуаля, у меня разные тестовые наборы гоняются. ===================
Но прогрессивные люди подсказали: "а Gradle лучше! Там тесты можно прямо в gradle.properties в группы "tasks" языком groovy сложить и будет гоняться даже без подмены testbg.xml".
=================== Возрадовался я, скачал gradle. Написал gradle.init, он заимпортировал себе мавен dependencies. Я по индусским туторам склепал gradle.properties и..... BUILD FAILED.
Автотестеры, пожалуйста, скиньте свои копипасты шпаргалки по этому файлу (желательно целиком, начиная с первой строчки). А я посижу, поизучаю, переделаю под себя.
А ещё для меня, дурака, скажите аналог команды mvn compile test для gradle, шоб понеслись тесты.
>>2335173 > Gradle лучше Внимательно перепроверь версии градла у индусов и у себя, они должны полностью совпадать, иначе есть 80% вероятность, что не работает у тебя именно из-за этого, т.к. там постоянно ломают обратную совместимость.
>>2335198 Спасибо. Я ступил, ведь банально можно на гитхабе написать selenium gradle в поиске и получить уйму результатов с проектами, где лежит этот gradle.properies файл. Хотя там много новичков назаливало.
>>2329462 (OP) Какой положняк по Эккелю? В гайде не вижу его. С чего лучше начать состоявшемуся программисту-свитчеру? Если есть, киньте простеньких, но хорошо написанных приложений на жабе с гитхаба, хочу поковырять. Трендинг смотрел, там все довольно большое. Сам пару раз пукал коммитами в https://github.com/BTW-Community/BTW-Public , но меня утомляет необходимость глубоко раскуривать исходники майнкрафта (это ещё хорошо, что проект без форжа, а то еще и форж бы сверху прикатил), когда я и в жабе едва-едва ориентируюсь. Вот что-нибудь с таким размахом бы.
Если System и String красные, дорогой олимпиадник, то ты либо не скачал jdk (ты скорее всего это сделал, да), либо не зашел в Мой компьютер > Свойства > Изменение системных переменных и не создал переменную %JAVA_HOME% со значением "путь до папки с джавой" и не пополнил переменную Path значением %JAVA_HOME%/bin
Но IntelliJ IDEA даёт тебе прекрасную возможность зайти в "Файл > Структура проекта > " и там нажать "скачать jdk версия такая-то". Любая подойдёт.
>>2335642 Слабак, если к концу года рынку айти пизда, как предвещают пессимисты, то будешь рвать волосы на жопе, что вместо вката в последний вагон - воротил нос и прыгал по стекам. Как работает вся эта бин-залупень можно понять и потом, когда покодишь немного крудов, по туториалам полагаясь на магию бута.
А чому Eclipse половину классов из библитеки JavaFX не видит? Idea всё моментально подключила, всё работает, а вот что с Eclipse я не знаю. Как фиксить?
>>2335679 Подключить javafx это тот еще квест, из коробки это не будет работать. Гайд с оф доков https://openjfx.io/openjfx-docs/ , читаешь интрадакшен, читаешь эклипс нон-модуляр мавен, или что там у тебя.
Есть такой кусок кода. Утверждается, что он потокобезопасный. Почему он потокобезопасный? Что будет, если два потока войдут одновременно в getInstance()? Выполнение обоих остановится до момента, пока не будет выполнена статическая инициализация вложенного класса?
>>2335761 1. Стековерфлоу и баелдунга достаточно. В самых крайних случаях в доку идешь. 2. Шаблонизаторы не нужны на 90% проектов. Учи рестец с постманом.
Почему никто до сих пор не написал утилиту, которая сканирует класспас на наличие вызовов setAccessible и генерит список необходимых параметров --add-opens?
Что почитать джуну крудошлепу на спринге для саморазвития? Месяц назад вкатился. Место мне нравится, пока не потогонят. Если не погонят, еще годик тут посижу. Пока пишу дтохи, рест апихи и рест клиенты, миграции и тесты, самые простые части. В проекте есть еще кафка, кубер, носиквел бд и си—сд. Но до них пока не допускают. Сейчас читаю чистый код, как то не очень. Что почитать, чтобы полезно было и желательно в книжках? Паттерны? Что—то по микросервисам? Книжку с кабанчиком? Что—то по бд или по спрингу? Про тесты?
>>2336090 Планирую, придется, видимо. Запасы уже проедены, денег нет, тяжело... Тогда вопрос игры станет под угрозу, потому что придется по пол дня перекладывать джсоны в крудах, а оставшееся время тратить на 8 бесполезных созвонов в зуме в день.
>>2336087 > В настоящее время PayPal Россия не открывает новых личных или корпоративных счетов. Приносим извинения за причиненные неудобства. :( Можно на Сбер или Телькофф, please? 5536 9140 4254 9687 Тинькофф 5469 4000 1294 2426 Сбер Админ, не бань, я безработый.
>>2336072 Лол, это Блэйк, он гетеро, если это важно, т.к. у него есть девушка Эйва.
>>2336075 Хорошо, если будут на это весомые запросы.
>>2336556 Пусть он зайдет в свой Сбер приложение и посмотрит такие 2 вещи как: IBAN (это номер счёта международный, которому его карта привязана) и BIC (код для распознания номера отделения банка).
А донатер в своем северокорейском банкинге выберет "отправить на счёт" или "перевести по реквизитам" и введёт эти 2 хуйни. Придет из любой точки мира за 2 дня максимум или за минуту минимум.
>>2335163 У меня есть такая штука как runLater(Runnable) которая внутри тупо создает тред и выполняет в нем Runnable. А еще ввод с клавиатуры из другого потока. Еще прием данных тоже в отельном потоке. Получение данных может быть инициатором отправки в конечном счете. Так что я не вижу смысла в очереди когда есть synchronized, который по сути ту же самую функцию выполняет и требует меньше телодвижений.
>>2336687 Как то все переусложененно. Инпут, прием, отправка - это всё не должно вмешиваться в поток геймлупа. Потому что ведет к усложнениям из за синхронизации общего состояния и т.п. Каждый из из этих потоков должен быть буфером-очередью, а мейнтред опрашивать и наполнять эти очереди. Это стандартный геймлуп в любой книжке по движкописательству.
>>2336949 Так получается же, что все и так как у тебя на картинке, только в потоках вместо очередей синхронизация. Чем по факту synchronized будет отличаться от твоих while(true), кроме того что это сложнее поддерживать?
>>2336963 Ну тогда я не понимаю твою архитектуру. Если все так же, то и синхронайзед не нужен. > Чем по факту Геймлуп не будет блокироваться когда хочет отправить команду. Инпут и ресайвер ну будут блокировать геймлуп когда им это не позволено. Не нужно сотню раз за секунду дрочить ос со своей синхронизацией. > кроме того что это сложнее поддерживать? Обычно все хотят уйти от сильно связанной синхронизации к очередям, хотя бы потому что с ними вероятность дедлока отсутствует. Модель акторов или реактора, например. Первый раз слышу что это сложнее поддерживать. Но я не прошу взять и делать рефактор, просто мысли.
Может ли FetchMode.join работать медленнее FetchMode.select с учётом того, что хибернейт не отфильтровывает повторяющиеся значения? Если есть много коллекций, но они Set, FetchMode.join будет лучше select при условии, что нам надо обязательно их загрузить? Меня напрягают эти тысячи дубликатов с большой вложенностью, насколько они влияют на производительность. Вроде в новых версиях Хибернейта он сам решает, когда перейти с join на селект, но тут я не уверен. Но выполнять селект для каждого элемента коллекции кажется тоже полным говном.
>>2337902 Изначально из-за ромбов https://en.wikipedia.org/wiki/Multiple_inheritance#The_diamond_problem В интерфейсах ромбов не было. Потом добавили дефолтные методы, на них стали чекать. А почему в классы так и не добавили? Ну наверное решили, что это хуевый дизайн. Одно дело множественное наследование в API (чем и являются интерфейсы) и совсем другое наследовать реализацию.
>>2338083 Если у тебя это произошло, у тебя кривая структура, и тебе это аукнется в будущем, но тогда тебе уже придется переделывать не 4 класса на 150 строк, а 200 на 4к.
Аноны, поясните, насколько сильно отличается написание бекэнда на Джаве от ПХП, к примеру. Если я переехать захочу на другой язык, то проблем не будет?
>>2338114 Условно-резко. Я трижды резко преисполнялся в своем сознании. Первый раз я научился пользоваться методами (мемная ситуация, но до этого я почти месяц кодил прямым кодом и копипастом). Потом научился юзать объекты, потом въехал в полноценное ООП. С того момента, как въехал в ООП ни разу не дебажил сверх срока, да и вообще общее количество багов за пару лет можно на пальцах посчитать.
>>2338115 Ну заебись тебе. Дневник ведешь? Я программирую с 8 лет и сейчас, конечно, проблемы решаются гораздо быстрее. Но дефолтные методы мне жить не мешают.
>>2338107 Чем больше у тя квалификация, тем меньше вообще языки отличаются. Для джунов перейти с джавы на пхп или наоборот непосильная задача, а помидорам вообще похуй на чем писать.
>>2338107 Отличается кардинально. На РНР у тебя язык заточен для бэкенда, а джава нет, тебе надо будет использовать кучу фреймворков, чтобы сделать то, что на РНР делается 1 оператором.
>>2338186 Котлин ебливая параша для залетных в джаву из петухона, работающая на 8 jvm с злоебучими паузами gc, с уродливым петухоноподобным синтаксисом (fun сука, нахуя это писать????) и хуевой тучей игрушек дьявола в виде функциональных соблазнов, которые потом вылезают через месяц после написания в виде скрытых багов
>>2338198 >>На голой джаве тебе надо написать свой http-сервер Он и в чистой жаве есть из коробки. Хотя мало кто это знает, ведь все равно все пишут на спринге. >>2338198 >>2338202 >>Сколько строчек займёт В бэке считают не строчками, а затратами времени. Но если интересно - посчитай сам.
>>2338198 Если делать что-то потяжелее интернет-магазинов, то внезапно оказывается, что бэк далеко не всегда веб. Давай, откручивай теперь свою пыху от хттп сервера и научай ее жить дольше пары секунд. И чтобы вот так же легко, в одну строчку.
>>2338383 Но как мне изучить Спринг, если по нему нет актуальных книг? По ASP.NET целые книги посвящаются разбору разных веб-фишек, а тут от силы 5-10% от книги, да и то там устаревшая инфа для старого спринга, а сейчас уже вышел спринг бут и там всё по другому.
>>2338414 Думаю, что да. По крайней мере, никто не запрещает тебе перестать ее читать, если все слишком сложно. Только читай на английском, а то перевод на русский может быть что-то вроде: охлади трахание, углапластик
>>2338419 Нахуя тебе книга? Никто в здравом уме не будет писать книгу по спрингу, потому что это нахуй не нужно. Пересказывать документацию никто не будет
Блять, щас почитал блог бугаенко о политике, лучше бы он эту хуйню не высирал, такой low iq кринж, что пиздец просто.
>коровабибуса не существует кококо >либесральная эканомика и собственное развитие, но донбасс заберём сука и крым
а вот с этого вообще захрюкал >Под занавес Россию, видимо, ждет Майдан, трансфер власти, передел собственности, амнистии, аресты, и … окончательная победа добра над злом.
>>2338543 >блог бугаенко о политике Делаешь это неправильно. Блоги программистов о политике, будь то бугаенка, всё-ещё-сергей-немчинский или ит-борода - кал говна.
>>2338560 Согласен, раньше иногда слушал Бугаенко как фрика, как шоу, и все думал, что же с ним не так? После последних высказываний все стало на свои места.
>>2338562 >Are you a Java developer? Ready to move to Moscow (Russia) and join my team for a full-time employment in Fortune-100 company? We are working with EO
Он там свою хуету в энтерпрайз притащил. Ебальники бизнес овнеров имагинировали?
>>2338601 >ниже, чем хттп Охуеть, а остальные прикладные протоколы уже отменили, над тсп есть только хттп теперь? Внутри большой микросервисной софтины вероятность найти сервисы без апи, доступного по хттп стремится к 1. Более того, иногда они могут даже вообще не общаться с другими сервисами. Если ты за специфику предметной области спрашиваешь, то пошевели моском сам - где и насколько распространены подходы, отличные от "прими хттп запрос, отдай ответ, умри".
>>2338562 Не, ну как программист он интересный. Да вообще есть много людей, которые интересны в том, в чём разбираются, но отвратительны в политике (Джордан Питерсон сразу приходит на ум).
>>2338458 Ещё минус сайтов в том, что там отдельные статьи и ты можешь легко пропустить половину из них, а там будет важная инфа. Книгу же ты читаешь от корки до корки и получаешь весь объём знаний.
>>2338668 Кроме протоколов брокеров сообщений никаких типичных кейсов в интерпрайзе и нет. Но с брокерами и пхп работает. Так ты сказал, что есть что-то что не может пхп на беке, что может жаба. Конкретный пример можно?
>>2338726 Преобразование из одной джейсонины, полученной с рест-клиента, в другую, отправленную на рестконтроллер с сохранением первой в постгресе и кешированием в редисе. Вместо фронта - сваггер. Интересно звучит?
Поясните зачем в спринге используются прокси? Например в транзакциях, почему нельзя без них, почему, например, создается прокси ЭнтитиМенеджера, почему нельзя создать сам объект без прокси, от меня это как-то ускользает, вернеее везде просто пишут, что создается прокси, а зачем, и почему без него нельзя, не пишут.
>>2338919 Тебе нужно расширить функциональность класса, например, добавить транзакцию. Ты никак не меняешь свой код, а только ставишь анноташку. Благодаря прокси тебе не надо самому оборачивать свои методы в транзакции, проверять права пользователя, кешировать результат, ...
Я пишу вот такой аспект: @Component @Aspect public class TransactionLogic { @Before("execution(public void businessLogic()) ") public void transactionAdvice () { UserTransaction utx = entityManager.getTransaction();
try { utx.begin(); } catch (Exception e){} } } Я как бы херню написал, но вот как-то так я понимаю аспекты. Как бы зачем прокси энтитиМенеджера? я не могу понять
>>2338976 Не работал с em напрямую. Em не тредсейф, а значит, на каждый реквест нужно создавать новый em = emf.createEntityManager(). Если ты закинешь em в объект, то чтобы работать с новым em, тебе нужно создавать новый объект, в котором есть этот em. А так ты можешь сделать прокси над em, которая будет делать следующее: если em ещё не создан для данного треда, то мы создаём его и сохраняем, а если em уже есть, то мы просто отдаем его
>>2339092 Он ещё у бороды когда был там было тоже самое по куче коммитов почти каждый день. Он долгие годы коммитит кучу кода каждый день. Если там такое говно, то почему его не вывели на чистую воду, что он шизик?
Нужна простая авторизация для одной сущности. Без спринг даты. Сейчас делаю через доп запрос перед гет/апдейт/делит. Все работает, но доп запрос смущает немного. Подкидывали идею сделать через row-level-sequrity в самом постгресе. Хз как этими роу левел пользоваться. И как ошибки отдавать из базы в код, к потом в апиху. Есть у кого то опыт с этими штуками?
>>2335207 Так, последний бамп на тему Эккеля и "думать в джаву". В прошлых тредах упоминался, но какого-то консолидированного мнения не было. Я так понимаю, что частично устарело? Читал первую главу, вроде неплохо рассказывает. Как смотрится на фоне Шилдта?
>>2339146 Окей, я сам думал о Хорстманне, раз уж он >Твой выбор если уже есть/был опыт других языков и нет потребности в разжевывании материала. Спасибо
>>2339454 >>уже есть Ломбок. Он есть везде, кроме совсем уж древнего легаси на жаве 7- >>че он делает https://projectlombok.org/ если вкратце - гетеры, сеттеры, конструкторы, тустринг, эквал/хэшкод - на аннотациях вместо бойлерплейт кода.
>>2339601 Просто есть юзер-айди в одной из связанных таблиц. И этот айдишник приходит вместе с запросом. И по айдишнику через селект с джоином перед основным и идет проверка прав. Вот думаю нельзя ли тот функционал предварительного запроса на row level security.
>>2339761 Надо. Юзер ид приходит вместе с запросом(пока в хедере отдельном). И если запрос гетбайид/апдейт/делит, то проверка перед основным запросом на соответствие айди сущности с юзер ид, если не совпадает, то эксепшон и 403, если совпадает, то еще один основной запрос. А если геталл, то просто фильтрует по сущностям связанным только с этим юзер-ид.
>>2339844 Понял. Тогда я бы все-таки доп селект делал. Не думаю, что размазывать логику - хорошая идея. К тому же, в будущем проверка прав доступа к сущности может усложниться, и будет намного проще, если она к тому моменту будет в твоём приложении, а не в базе
>>2339913 Ну не только ты мне так сказал, это логично все. Ну а по этим row level security можешь что-то сказать? Начинал по ним читать статью и уснул на середине. А теперь и не надо вроде как. Но интересно, что за штуки. Хотя наверно если такие есть, то на проекте есть дба и он этим занимается.
>>2339927 Вообще хз. Ни разу этим не пользовался и надеюсь, что не придется пользоваться. Мне кажется, что единственный вменяемый юз кейс - когда пользователи пишут запросы в бд напрямую
>>2340558 А в 4-м что, какая-то совсем другая инфа? Просто обычно по мере апа версии ошибки сокращаются. Я так понимаю на границе каких-то изданий произошел переход на спринг-бут с "обычного" спринга. Может поэтому.
>>2340566 Почему тогда он не разделил эти две книги на независимые, интересно. Если контент сильно отличается. А есть вообще смысл ебаться с базовым спрингом сейчас? Какая ситуация по отрасли с этим?
>>2329462 (OP) Куда развиваться в джэве, чтобы меня не заменили упругим зумером? Почитываю проджвм и проджвмджобс и вижу толпы упругих зумеров, которые уже работает в крупнейших компаниях и разговаривают о высоком!
Сап, Есть вкатуны, которые вкатились после 30lvl или ближе к 30. Долго уже работаете? Как ощущения спустя год, два, больше? Быстро вникли в работу, быстро прокачиваетесь? Что можете посоветовать, чтобы сэкономить время и усилия?
Я вкатился недавно.. Но чет мне кажется, что очень медленно ползу. Дохуя всего надо впитывать со всех сторон. И очень легко потеряться.. впитывать лишнее, то что не нужно мне
>>2340778 Если тебя устраивает контракт интерфейса Collection - берешь Collection. Если List - берешь List. В большинстве случаев этого достаточно. Юзать то, что умеет только ArrayList пригождается редко.
>>2340573 Смотря какие у тебя цели и какой стек ищут твоём городе. Я для себя решил начать лучше с обычного спринга, чтобы потом было понятнее что под капотом у спринг-бута.
>>2340769 Тебе будут доступен разный набор методов у того объекта, на который ссылается переменная. Самый маленький набор будет у коллекции, зато ты в любой момент, ничего не рефакторя ниже, сможешь заменить этот объект на любой другой тип коллекции, даже совсем не относящийся к спискам, например, Set. И у тебя гарантированно ничего не поломается. Самое большое количество действий тебе будет доступно с эррэй-листом, но зато ты будешь обязан именно его юзать как объект, либо любого его самодельного наследника. Короче, ответ такой, что зависит от ситуации и задач. Но вообще считается некоторым зашкваром юзать такие дефолтно-АПИшные вещи через конкретные реализации, надо юзать интерфейсы. На практике в 95% случаев используется варик 2. Еще можно использовать такое соображение - используй такой уровень иерархии наследования, который обладает минимально-достаточным АПИ для твоей задачи. >>2341224 > 1 версия в 3 года > Ну тормоза ебаные, шарпы с дот-нетом вон кипят развиваются, а на этом говне только пенсионеры-ебанаты пишут, ну тормозаааа > 3 версии в год > ну куда вы прёте ебана, я еще то что 3 версии назад запилили не освоил
>>2341353 >>Ну тормоза ебаные, шарпы с дот-нетом вон кипят развиваются С полугодовым релизом большого развития не выйдет - некогда новые фичи пилить, надо готовиться к релизу и тестировать.
Есть кто по 5-му изданию Spring in Action делал проект который там пилится? Почему может не работать валидация формы? Вроде все включено, никаких ошибок нет, а в браузере никаких ошибок не ловится (в дебаггер пустой объект errors приходит)
>>2341528 >Spring In Action Вся суть этой долбоёбской книжки, скорее. Там листинги хуй пойми какие. Оказалось, что автор забыл указать добавление зависимости: spring-boot-starter-validation В итоге когда не стали подтягиваться валидаторы, я вручную нашел зависимости validation-api и валидатор-гибернейт. Нужные классы-то подтянулись, но где-то там что-то не срослось, в итоге валидация не происходила. Раз уж о валидации речь, кто знает как можно валидацию @CreditCardNumber пройти с пробелами в номере карты, как у всех нормальных карт? Если бы я управлял вручную я бы снес пробелы через регулярку, а тут ничем не управляешь по сути
>>2341390 Они ж не могут закинуть фичу, которая еще не проверена как следует и она откладывается до следующего релиза, а там лтс и новые фичи откладываются на потом....так до сих пор лума не видим с этими релизами. Или еще чего то подобного уровня. Выкатывают только всякую сахарную хуиту.
>>2343560 >>2341897 Если ты тот анон, который ответил, есть ли все же способ валидировать объект в любой другой момент, кроме как в момент возврата из формы? что-то вроде inputObj.magicBusiness() @Valid Object obj = inputObj;