Вы видите копию треда, сохраненную 5 августа 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Предыдущий: >>2319696 (OP)
90%. Старше 30 только некоторые помидоры да техлид.
Репорт.
Процентов 60-70, но многие выглядят моложе, и так сразу не скажешь что им за 30. Meta
*запрещенная в России террористическая организация
КЛИКНУЛ НА ССЫЛКУ "РУКОВОДСТВО ВКАТЫВАЮЩИМСЯ ПОЧТИ НАЧИНАЮЩИМ И СОЧУВСТВУЮЩИМ"
@
ПЕРЕНАПРАВЛЕНИЕ НА JAVARUSH
Не переживай. Это просто не LTS версия треда.
>Что такое лайв кодинг на собесе стажера? Кто-нить может пояснить?
Во время конфы внезапно открывается Notepad++
В нем наваян предварительный код и текст "допишите как решить такую задачу".
Ты пишешь и параллельно вслух озвучивает, почему ты так пишешь и какие у тебя идеи. Не молчишь.
Косяки допустимы. 4 прогера даже помогали, указывали, где мне исправить, потому что я им понравился и они хотели сами, чтобы я лайвкод всё-таки пошел.
Справедливости ради на джавараш годный начальный бесплатный курс для самых тупых (по синтаксису). Я по нему вкатывался.
Ставить эклипс
Установить dbeaver
Перекатываться в питончик.
Оно только в ультимейт эдишене
Норм же тема, почему многим это не нравится? Пишешь и пиздишь сразу по делу, вместо того чтобы пересказывать главы хорстмана.
Почему?
Это даже не откомпилируется
Давай вежливо и не токсично, у нас тут не джаваскрипт тред
Вот оракл стала перекатывать джаву каждые полгода и к чему это привело? Лум уже давно бы вышел, но его не успевают постоянно засунуть и потестить из за частых релизов.
Лум костыль. При нормальной микросервисной архитектуре проекта никакие лумы нахуй не нужны
У тебя community edition (java se), ставь ultimate (java ee), там твои базы данных
Дань уже ушедшей моде. Пока все популярнейшие прогрессивные языки (Js, python, c#) пересели на практичный async await, деды из оракла вдохновились говноголангом с его горутинами
Говно ебучие, ебучие говно для ебаный хуесосов
ТЫ - ОБЫЧНЫЙ СЫЧ-КАБАН
@
ВЛАДЕЕШЬ ИНТЕРНЕТ МАГАЗИНОМ
@
ПО СОВЕТАМ С ДВАЧА РЕШИЛ РАСПИЛИТЬ СВОЙ СТАРЫЙ МОНОЛИТ НА КУЧУ МИКРОСЕРВИСОВ
@
НАНЯЛ 50 СИНЬОРОВ
@
ПЫХТЯ И НЕВЫСЫПАЯСЬ, ЧЕРЕЗ ПОЛГОДА НАКОНЕЦ ТО ОНИ РАСПИЛИЛИ МОНОЛИТ
@
ТЫ РАДИ ЭТОГО ЗАЛЕЗ В КРЕДИТЫ НА 5 ЛЕТ ВПЕРЁД
@
ТВОЙ МАГАЗИН ЛАГАЕТ КАК СУКА, НИКТО НЕ ПОКУПАЕТ НИЧЕГО
@
ЕРОХА НАНИМАЕТ ДЖУНА С 5 МЕСЯЦАМИ СТАЖА И ПОРУЧАЕТ ЕМУ НАПИСАТЬ ПРИМЕРНО ТОЖЕ ЧТО И У ТЕБЯ, НО МОНОЛИТОМ
@
ЧЕРЕЗ НЕДЕЛЮ ПРИБЫЛЬ ТОЛЬКО ЧТО ОТКРЫТОГО МАГАЗИНА ЕРОХИ БОЛЬШЕ ТВОЕГО
@
УЛЕТАЕШЬ НА ЖОПНОЙ ТЯГЕ В РАЙ ДЛЯ СЫЧЕЙ
Двачую. Не понимаю, кто вообще использует уродство под названием спринг, не имеющее в себе ни намёка на ооп
У вас разве пишется что-то на джаве?
Двачую, блять, это пиздец, коллеги скуфы старше лет на 10-15, темы для разговора кроме работы - это дети, политика, мемасы с пикабу и фотки котиков.
Нахуй я в жабу ебучую вкатывался, надо было жопаскрипт дрочить.
А поновее ничего нет?
> Так бывает, когда вместо монолита пилят распределенный монолит, думая что это и есть микросервисы.
Так бывает, когда какой то даун делает геттеры не протектед или вообще поля класса публиком и что самое интересное этим кто-то потом пользуется
>>У меня половина коллег тру-двачеры
Эх мне бы хоть одного двачера, а то какие то нормисы кругом, я пошутить лишний раз боюсь, чтоб ебанутым не посчитали.
Нет, но я прочитал его книгу Элегантные объекты Java Edition и вкатился на техлида после первого собеса.
>ПОМЕНЯЛ НАЗВАНИЕ ПЕРЕМЕННОЙ
>@
>БИЛД СОБИРАЛСЯ 4 ЧАСА
>@
>НЕ ЗАПУСТИЛСЯ
КЛИКНУЛ ПРАВОЙ КНОПКОЙ МЫШКИ ПО НАЗВАНИЮ ПЕРЕМЕННОЙ, ВЫБРАЛ "РЕФАКТОР"
@
ПОМЕНЯЛ НАЗВАНИЕ
@
В ПРЕДЕЛАХ СЕРВИСА ВСЁ ОК ПОМЕНЯЛОСЬ
@
ПАРСЕРЫ ДРУГИХ СЕРВИСОВ ПОЛОМАЛИСЬ
СДЕЛАЛ ЭЛЕГАНТНЫЙ РЕФАКТОР НА ПРОДЕ
@
ПЕРЕСОРТИРОВАЛ ПАКЕТЫ
@
ПОМЕНЯЛ УРОДЛИВЫЕ НАЗВАНИЯ КЛАССОВ
@
ЗАЩОООООО УВОЛИЛИ(((((((
>Ну это смотря где работаешь. У меня половина коллег тру-двачеры и моложе меня (24 лвл).
Как выбрать место работы, что не быть на 15 лет моложе коллег?
(20 лвл)
>>геттеры не протектед
Ты че ебанутый? Гетеры ломбок пишет, они всегда паблик. Не любишь гетеры - пиши билдер или конструктор на все поля
>>поля класса публиком
Такое не должно код ревью проходить.
Ищи вакансии, где не требуется большой опыт работы и вышка
Конечно поломается. Перед таким рефакторингом надо согласовывать XSD-схему интеграции с разрабами ESB и других сервисов.
Джава - это прежде всего ООП, лол. Не нравится ООП - пиздуй в петухон или косринтот же петухон.
Нахуй мне питухон? Я на реактвной жаве с микросервисами пишу. Ты просто закостенел со своим ООП и не видишь что джава сильно поменялась за 20лет.
Деградировала, да. Лучшее развитие джавы было бы если бы из неё выпилили статик. Пока что ничего лучше ООП не придумали, и не придумают никогда. ООП это развитие из функционального стиля программирования, петухоны и прочая хуйня это деградация туда обратно.
> Джава - это прежде всего ООП
То-то его свели к процедурщине, введя anemic model, и теперь в жабе только структуры, процедуры и модули, которые почему-то нужно называть сущностями, методами и сервисами. Собаки не умеют сами лаять, делать это нужно через СобакаСервис.
Ну вот это хуйня ебаная.
Ну вот это хуйня ебаная и джаву испортили кабаны-пидорасы-долбаебы, которые не думают на 3 минуты вперёд и которым нужен сиюминутный результат, который быстрее всего достигается написанием кривой процедуры (даже не функции лол, процедуры ебаной)
Гораздо более расширяемо. Ноль багов. Если и есть дебажатся за 2 минуты. Код в сто раз более понимаем, в уже написанную кодовую базу в ооп стиле не придётся по сто лет вникать, можно просто сесть и продолжить разработку.
СобакаСервис тоже лаять не умеет, он может достать собаку из коробки, ссутулить ее и положить обратно.
Хуйню написал, это все вообще не зависит от стиля написания кода.
К процедурам относится гомоебля, дебаг в 5 часов ночи, охуенные выплаты клиентам из за того что они проебали дохуиллиард из за скрытого бага, методы на 5 тысяч строк и с 10 отступами, ситуации, когда переписать код с нуля раза в три легче чем просто тупо вникнуть.
Так я в этот загон и пишу. Ты что-то попутал, джавапетух
Таков путь нах.
В жабе никогда не будет сахара для того, что возможно написать руками. Делается для индусов с построчной оплатой.
Это классно, когда нужен стандартный геттер или сеттер, а если планируешь написать что-то с дополнительной логикой, то придётся заводить дополнительную приватную переменную. В итоге у тебя будет балласт в виде свойства и дубликат в виде приватной переменной.
Встречный вопрос: а нафига они тогда нужны? Не проще сделать поле публичным? Вся суть геттеров и сеттеров - это дополнительная логика при изменении полей класса.
Чтобы геттер был паблик, а сеттер package private.
https://youtu.be/YbGOF8OrFjk
Действительно ли джава-программисты нужны?
Я никому не нужен.
В старых спрингах нет дыры? У нас пятый был, но к счастью деплоилось executable jar-ом
>>так писать:
тебе хочется геттер и сеттер отдельно для каждого поля прописывать, еще и поля публичными оставить? Тогда так. Знак вопроса это нулабл или нотнал? Если что и такие аннотации есть.
@Getter @Setter
public String kokoko;
>>30074
>>что-то с дополнительной логикой
не надо писать логику в геттерах, назови метод add, setup или еще как нибудь. но не гетером.
>>Вся суть геттеров и сеттеров
1.по привычке пишешь .get и смотришь че там в классе есть, какие переменные.
2.поддержать работоспособность всяких хибернейтов
3.можно писать гетеры в интерфейсах для магии с генерацией сущностей из базы
То есть так принято, в этом нет глубокого смысла.
Дырявые это у вас в треде. А у нас технологические особенности.
Читать всем новым пидорам.
Лишусь времени, потраченного на чтение высеров всяких хабрашизиков вместо обучающих материалов по джейве.
Если б они ещё были.
Ну а чё, тырпрайз на дотнете сильно отличается от того что написано? Или бекенд на питоне/пхп? Ходишь в базу, ходишь по хттп апихам, сам отдаешь всякую муть по хттп, ну и через брокеры сообщений тоже пуляешь/принимаешь.
Почему тогда нет нормальной инфы по всем этих технологиям? Обычно изучение Спринг - это грузят абстрактными бинами, типа какой-нибудь клоун жонглирует шариками. А вот конкретно про все эти JPA нигде не пишут.
Открой книгу по жпа. Она до сих пор топ.
По спрингу козьмину почитай, может зайдет.
И как надо грузить спрингом, если не абстрактными блинами, если спринг из них состоит?
>козьмину почитай
Я не сексист, но мне кажется, что женщины плохо разбираются в программировании
Это не значит, что тян хуёво разбираются а программировании в силу каких-то врождённых особенностей. Это значит, что каждая тян, решившая вкатиться, встречает сотню сексистов, которые ей говорят "у тебя хуя нет, какое программирование?", И только единицы, не сломавшиеся под общественным давлением, вкатываются, да и там стакюлкиваются со стеклянным потолком и людьми вроде тебя.
Я раньше считал как ты, но потом меня тян завалила на собеседовании, поэтому теперь я сексист.
У тянок гормоны играют. И настроение скачет каждые 10 минут. А для программирования нужны стальные нервы.
А когда тян ради этого вешает себе яйца и становится мужиком - это получается зверюга. Встречал, знаю.
Это не гормоны. Кунам с детства говорят "тыж мужик, плакать нельзя, смеяться нельзя, вообще эмоции показывать нельзя". А тянам не говорят. У кунов тоже скачет настроение каждые 10 минут, но они учатся его подавлять с самого детства. А тяны не учатся.
214x224, 0:05
А то все что я находил хотят мою душу полностью, а я хочу заниматься еще и своей игрой.
Вот вам хилка, подлечитесь.
>>29467-кун
Эх, сам бы с удовольствием на такую устроился. Охуенно было, пока учился в вузе, на работе разрешали работать 20 часов в неделю. А теперь я учусь в аспирантуре и нихуя не успеваю.
бамп вопросу. Вот устроился я жаба-джуном. У нас в компании есть пионячья команда. Чем их работа от моей отличается?
Почему это? Он же делает классы более аккуратными, скрывая стереотипный код
(Map.Entry<String, T> o1, Map.Entry<String, T> o2) -> {
return o1.getValue().getCreated().compareTo
(o2.getValue().getCreated());
};
Нужно ли джуну уметь разбираться в такой хрени?
Опять выходишь на связь?
А я и не подписывался, такую хуйню порой несет, которой в реальном мире не бывает.
Сельдь, ты чё забыла на программаче?
Пиздуй в петухон-тред, тухлодырая.
Дак кого смотреть? Я вот сейчас ищу нормальных видеоблогеров по джаве, но никого нету.
Молчать, тухлодырое уёбище.
Нашёл только лекции с хреновым звуков для студентов.
Где мотивационные видео, что у меня получится изучить джаву? Где свежие видео: какой язык выбрать в 2022 году? И чтобы там обязательно было сказано, что надо учить джаву, а не сишарп.
Ещё он пиарит идею, а она платная.
Селедка спок
Хуельдь
О, уже жду толпу джуно-мидлов, которые к нам придут.
Никого не нужно смотреть. Нужно идти свои путём.
Очевидная абстрактная фабрика.
https://youtu.be/g0sRBc4ZisM
Потому что это улучшенная java.
>>Нужно ли джуну уметь разбираться в такой хрени?
Это и стажер должен понимать. Ладно б ты про спринг спросил, но это то БАЗА.
Так понятнее? Если нет - гугли лямбды в жава(стрелка), женерики(Т), компаратор(compareTo)
var entryComparator =
(o1, o2) ->
o1.getValue().getCreated()
.compareTo(o2.getValue().getCreated());
>>Дак кого смотреть?
letscode
Java Brains
amigoscode
JUG .ru
Programming with Mosh
>>31854
>>мотивационные видео
>>какой язык выбрать в 2022 году?
Тебе цыгане нужны или каналы конкретно про джэву?
>>надо учить джаву, а не сишарп.
Если ты в геймдев собрался - не надо джаву.
>>он пиарит идею, а она платная.
Все кроме индусов и студентов немчинского пишут на идее. Даже бесплатная лучше эклипса
гетеры проебал - работать это не будет, либо придется отказаться от кодогенерации и все писать руками
Я просто показал суть этой хуеты. Гетеры и compareTo это говно должно было отмереть еще 20 лет назад.
296x302, 0:33
А говорили велосипеды это плохо и на все есть готовые решения. Сейчас бы с скими нибудь движком слал бы тонны говна вырывая гланды через жёпу, а так трафик минимизирован, все тонко и велосипедируется максимально только в нужных конкретных местах.
Синхронизация по TCP байтами (к примеру пакет позиции актора игрока - 8 байт (два флоата))
Всякая метаинформация типа "игрок такой-то зашел на сервер" JSON-ами, но не по ресту, а так же TCP байтами UTF-строк (на получателе преобразуется в Dto-хи).
Не люблю стереотипы. Лучше напишу хорошо на джаве, чем плохо на языке которой знаю плохо.
Мораль видео: если ваш препод прогорел на акциях Sun, то вы никогда не получите пятёрку за проект на джаве.
>Всякая метаинформация типа "игрок такой-то зашел на сервер" JSON-ами, но не по ресту, а так же TCP байтами UTF-строк (на получателе преобразуется в Dto-хи).
А зачем, когда есть бинарные протоколы, типа protobug, bson, cbor, messagepack и в конце концнов просто сериализация джавы? А еще RMI.
А зачем, когда есть бинарные протоколы, типа protobug, bson, cbor, messagepack и в конце концнов просто сериализация джавы? А еще RMI.
Мне не сложно отправить classname+JSON. Не хочу использовать обертки над обертками.
Тебе не сложно, а сетевым устройствам сложно твои тяжеленные UTF-8 строки гонять туда-сюда.
Могу пока GZIP-ом сжимат. Я, конечно, когда-нибудь приду к тому чтобы это оптимизировать. На этом этапе не охота заниматься оптимизацией, ты представь, это сейчас надо реализовывать кучу контрактов, поддерживать версии протоколов на клиенте и сервере.
Сейчас проще сбилдить Dto-шку и послать в метод send и быть увереным что получу ровно то что и отправил без пересборки неба и Аллаха.
Ты можешь прямо сейчас использовать джейва сериализейшн, чтобы не реализовывать никакие контракты.
И это будет оптимальнее UTF8 строк? Объясни ка. Я просто, похоже, чего-то не знаю.
Обычно советуют получать ресурсы как Main.class.getResource(), но, насколько я понял, ресурсы таким способом можно вытащить только те, которые лежат непосредственно рядом с классом Main. А если на несколько директорий выше нужно подняться, как в моем случае?
Нашел какой-то способ через Main.class.getProtectionDomain().getCodeSource().getLocation() получить корень (корень чего кстати?) папки с классами/джарника и оттуда уже вытягивать что в ней лежит.
Есть какие-то более удобные способы? Сама задача состоит в том, чтобы прописать в jetty папку, где хранятся статические хтмл. Может я вообще не туда воюю.
статика деплоится отдельно все равно... делай нормально сразу, а не решай проблемы хаками
Где подробнее узнать про деплой статики? Пока что я делаю так: прописываю пути к сервлетам, потом накидываю ResourceHandler, в котором указываю путь к статике, после чего все запихивается в сервер.
Как вообще со статикой работать? Я надеялся, что можно все удобно будет положить в папку resources, содержимое которой в джарник попадает при сборке. Итого сервер будет представлять собой один единственный джарник, который одной командой можно запустить.
Или в действительности всю статику отдельно нужно хранить?
Обычно так делают:
1. Статика делается отдельным проектом, деплоится отдельно в nginx
2. Может быть написана на чем угодно, реакт, вуе, и тп
3. Бекенд экспозит эндпоинты (апи) для статики
4. Бекенд деплоится отдельно, как джарник, может быть даже на другом сервере/VM-е
5. Статику деплоят в CDN, чтобы она раздавалась быстро с edge серверов ближайших к end-юзеру
.. Перед бекендом может стоять еще лоад балансер и API gateway который будет роутить запросы от статики в нужный сервис, но это тебе не надо сейчас..
Я уже какую сотню раз натыкаюсь от женщин "у меня не получается, я психую, сделай за меня" вместо "натолкни на верную мысль, чтобы я решила сама".
Мимо из ЕПАМа.
Оригинал письма на английском. Чел через Гугл переводчик прогнал.
СЕО Аркадий сокращает свое имя до 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.
Ark
ARKADIY DOBKIN
CEO
Мимо из ЕПАМа.
Оригинал письма на английском. Чел через Гугл переводчик прогнал.
СЕО Аркадий сокращает свое имя до 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.
Ark
ARKADIY DOBKIN
CEO
> Main.class.getResource(), но, насколько я понял, ресурсы таким способом можно вытащить только те, которые лежат непосредственно рядом с классом Main
Поставь / в начале пути
Потому что от тебя ожидается знание английского на уровне В2, чтобы смотреть 2 вещи:
• Плейлисты гуру
• Туторы индусов
Потому что ты ищешь русек.
Туторы пишут только индусы, а видосики записывают все.
Выбор то небогатый. Мне больше нравится thymeleaf из за того что работает с html, а при желании можно распилить на фрагменты и шаблоны. Но и freemarker наверное не хуже, если тебе надо просто накидать шаблон для письма.
Конечно не нужны, щаблонизаторы вообще не нужны, ведь сейчас всё реакты, спа, ресты.
Я ньюфаг. Почему не JSP? У него каких-то фич недостаёт?
Там же xml какой-то. Хотелось бы что-то близкое к html.
Вот ASP.NET, который на сишарпе, классный шаблонизатор.
< На дворе 2022 год, но нет ни одной адекватной книги по Spring.
Потому что ты ищешь на русском.
> Из шаблонизаторов только JSP, а про остальные они даже не слышали.
Они все одинаковы, и отдельно писать книгу про то, что и так рассказано в документации, смысла нет. В отличие от спринга, в них нет глубинного смысла.
> Хотя очевидно, что проще использовать тот, который ближе к реальному html-коду, а не абстрактный xml.
Ближе всего к реальному html реакты-жопаскрипты.
Как минимум, в XML все теги надо обязательно закрывать, а в HTML есть теги, которые закрывать запрещено. Уж кому как не джавистам знать это.
Когда чел говорит что не хочет xml, а хочет html, подразумевается что будет какое то качественное отличие, а не те же тэги+атрибуты которые необязательно закрывать.
А ты начинаешь что-то подозревать. В шарпе тебе и единый стандарт, и русек, и беззнаковые типы.
Выше на видосе пояснили что ораклу была нужна джава просто чтобы запрыгнуть в уходящий поезд, который прошел уже давно. А раз прошел, акулы бизнеса потихоньку избавляются от неликвидного актива еще с 8 версии, разделяя его по частям то индусам, то организациям. То есть фрагментация экосистемы будет только нарастать.
> Выше на видосе пояснили что ораклу
На видосе препода, который прогорел на акциях sun, обиделся и теперь занижает всем джавистам оценки?
В спринг ин экшон рестконтроллеры в 7 главе из 20
> Hateoas
Хуйня без задач. Хотя есть Spring HATEOAS.
> Graphql
К нему не применима концепция контроллеров.
Перекат >>2333480 (OP)
Перекат >>2333480 (OP)
Перекат >>2333480 (OP)
Перекат >>2333480 (OP)
ОП даун, тег забыл приделать
я и в 108 тред запостил перекат
Перекат >>2333480 (OP) (OP)
Перекат >>2333480 (OP) (OP)
Перекат >>2333480 (OP) (OP)
Перекат >>2333480 (OP) (OP)
Перекат >>2333480 (OP) (OP)
Можно, но идея так себе. Что, если запуск не через java -jar app.jar, а через -classpath и Main-Class? Или если жарник упакован в еарник? Привязываться надо к текущему рабочему каталогу или к папке юзера.
https://stackoverflow.com/questions/320542/how-to-get-the-path-of-a-running-jar-file
Понял, спасибо.
163 пост, в прошлом треде несколько раз было и в позапрошлом тоже.
Какая именно?
Вряд-ли. А если и жива, то не для широких масс
Жива в BigData и крипте.
Иногда веб сервисы в ФП стиле на ней пишут.
Можешь затестить, если ФП интересует, сам с жабы перекатился.
Иде A
IntelliJ IDEA. У неё много "помогающих" моментов.
После того, как в ней наловчился, тогда уже тебе может быть понравится Eclipse.
А так расклад такой:
Ты учишь JAVARUSH? => IntelliJ IDEA Community edition.
Ты разработчиком веб хочешь стать? = IntelliJ IDEA Ultimate, либо Eclipse.
Ты хочешь сделать Андроид приложение? Android studio (у него все равно интерфейс IntelliJ IDEA.
Ты хочешь сделать игру на кнопочный Сименс на J2ME? => Net beans
Если хош быть прям гуру, то терминал, научишься собирать любое говно через командную строку
A так IDEA Ultimate на все случаи жизни, я на ней даже на php иногда пишу, что и говорить про андроид
Кайф, продолжай. Что собираешься со стоп за ворлд делать, если это, конечно же, критично?
Спасеба. Я пока не замечал стоп ворлда (на видео бывает лаг при записи). Если замечу, то постараюсь сократить количество new. Если не поможет, взгрустну и забью (не на игру, а на стоп ворлд).
А кто будет мусор чистить? (инвенты всякие, рекорды, использованные строки, мапки и тд)
>>плагин STS доступен для Eclipse
Потому что это плагин для эклипса который пилят на идее, а не для идеи.
Идея ультимейт из коробки умеет гораздо больше.
Если совсем пиздец будет можно попробовать гц без стопзеворлда. Хотя на сколько я помню он и в стандартном происходит только при заполнении памяти на 99%+.
Стоп зе ворлд выдуманная проблема.
OutputWriter это сразу запись и отправка по сети прямо из геймлупа что ли?
Если так, лучше юзать ArrayDeque, он не блокирующий. Геймлуп в него будет класть команды не дожидаясь отправки, а другой поток в цикле while(true) их доставать и отправлять, можно даже по таймеру.
Тесты пишешь?
На каждые 10 строк обычно 1-2 баги, остальное все пиздабольство или нетестированный код.
> OutputWriter это сразу запись и отправка по сети прямо из геймлупа что ли?
Нет, это буфер из которого уже потом идет отправка.
Тогда не понимаю смысла синхронизации, геймлуп же это обычно один поток, кто кроме него ещё пишет в буфер.
ArrayBlockingQueue имелся в виду
мне пизда?
Потому что если не влезать в кишочки там все элементарно. Его же и придумали для того чтобы все было быстро и просто, слышал же выражения "магия спринга"?
Всю жизнь гонял тесты на мавене и был счастлив. Просто подменял testng.xml и вуаля, у меня разные тестовые наборы гоняются.
===================
Но прогрессивные люди подсказали: "а Gradle лучше! Там тесты можно прямо в gradle.properties в группы "tasks" языком groovy сложить и будет гоняться даже без подмены testbg.xml".
===================
Возрадовался я, скачал gradle. Написал gradle.init, он заимпортировал себе мавен dependencies.
Я по индусским туторам склепал gradle.properties и.....
BUILD FAILED.
Автотестеры, пожалуйста, скиньте свои копипасты шпаргалки по этому файлу (желательно целиком, начиная с первой строчки). А я посижу, поизучаю, переделаю под себя.
А ещё для меня, дурака, скажите аналог команды mvn compile test для gradle, шоб понеслись тесты.
С меня спасибо, добро пожаловать к нашему шалашу.
> Gradle лучше
Внимательно перепроверь версии градла у индусов и у себя, они должны полностью совпадать, иначе есть 80% вероятность, что не работает у тебя именно из-за этого, т.к. там постоянно ломают обратную совместимость.
Спасибо. Я ступил, ведь банально можно на гитхабе написать selenium gradle в поиске и получить уйму результатов с проектами, где лежит этот gradle.properies файл.
Хотя там много новичков назаливало.
Какой положняк по Эккелю? В гайде не вижу его.
С чего лучше начать состоявшемуся программисту-свитчеру?
Если есть, киньте простеньких, но хорошо написанных приложений на жабе с гитхаба, хочу поковырять. Трендинг смотрел, там все довольно большое. Сам пару раз пукал коммитами в https://github.com/BTW-Community/BTW-Public , но меня утомляет необходимость глубоко раскуривать исходники майнкрафта (это ещё хорошо, что проект без форжа, а то еще и форж бы сверху прикатил), когда я и в жабе едва-едва ориентируюсь. Вот что-нибудь с таким размахом бы.
У меня норм шутят, в основном хлёстко про капитализм и решающий рыночек (работаю в микрозаймах). Но я не жавист.
>>приложений на жабе с гитхаба
ближе к концу примеры проектов
https://github.com/akullpp/awesome-java
https://github.com/Vedenin/useful-java-links
Нет, вообще не пишу
О, заебца, про ОХУИТЕЛЬНЫЕ СПИСКИ я почему-то не вспомнил. Спасибо.
Но IntelliJ IDEA даёт тебе прекрасную возможность зайти в "Файл > Структура проекта > " и там нажать "скачать jdk версия такая-то". Любая подойдёт.
Или на и поменяй. А то так ты крутишься в цикле, пока у тебя друг на друга делиться не начнут будут равны
Слабак, если к концу года рынку айти пизда, как предвещают пессимисты, то будешь рвать волосы на жопе, что вместо вката в последний вагон - воротил нос и прыгал по стекам.
Как работает вся эта бин-залупень можно понять и потом, когда покодишь немного крудов, по туториалам полагаясь на магию бута.
>в 11ой ждк нет фх
Да, я знаю
>Ты и на идее с 11 сидел?
Да. Я просто подключал билиотку к проекту и всё, идея видела все классы
Нет, я ещё зелёный. В идее в стандартном java проекте идея видела библиотеку без мавена
Подключить javafx это тот еще квест, из коробки это не будет работать. Гайд с оф доков https://openjfx.io/openjfx-docs/ , читаешь интрадакшен, читаешь эклипс нон-модуляр мавен, или что там у тебя.
Так я и ставил по этому гайду - всё равно не завелась. Сеёчас попробую нулёвый проект создать и ещё раз попробую
Отклеилось
Ну тут очевидные две ошибки:
1. Ты используешь javafx (попробуй swing)
2. Ты используешь eclipse
> вместо вката в последний вагон
Не совсем ясно что помешает вкатоить в следующий год или следующий после него.
отклеилось
Я даже не нашёл инфы по шаблонизаторам. Только отрывочные сведения из видеоуроков, но этого не достаточно.
Пиздец.. вот нахуя такое спрашивать?
1. Стековерфлоу и баелдунга достаточно. В самых крайних случаях в доку идешь.
2. Шаблонизаторы не нужны на 90% проектов. Учи рестец с постманом.
Да.
Неужели за 5 лет никто не сподобился?
>>не нашёл инфы по шаблонизаторам
Тебе рано в джаву с такими навыками поиска информации.
https://www.thymeleaf.org/documentation.html
https://www.baeldung.com/thymeleaf-in-spring-mvc
https://habr.com/ru/post/350862/
Все у него установлено
https://www.onlinegdb.com/online_java_compiler
Просто надо условие в while поменять
>Нет, я ещё зелёный. В идее в стандартном java проекте идея видела библиотеку без мавена
Если ты зелёный и хочешь порисовать графический интерфейс в приложении десктопном - лучше посмотри java.swing
Если ты хочешь быть на пике веба - тебе лучше сразу в spring и залей на fx, swing. Рисуй gui через Спринг.
Hot fix забей
1090x732, 0:39
Сейчас читаю чистый код, как то не очень.
Что почитать, чтобы полезно было и желательно в книжках? Паттерны? Что—то по микросервисам? Книжку с кабанчиком? Что—то по бд или по спрингу? Про тесты?
А сюжет, персонажей, уровни, фишки всякие ты придумал? Или просто сделал десяток механик и все?
Ты же выше писал, что всрал в это 2 месяца без выходных. Лучше бы детокс от компуклера себе сделал между греблей, на природу бы поехал там.
Я думал игры начинаются с сюжета и персонажей, особенно если не от профи-игроделов. Что за гомоэлвис у тебя и почему он трясется?
На работу возвращаться не планируешь? У тебя большие запасы, сколько без работы проживешь?
Бамп
Планирую, придется, видимо. Запасы уже проедены, денег нет, тяжело... Тогда вопрос игры станет под угрозу, потому что придется по пол дня перекладывать джсоны в крудах, а оставшееся время тратить на 8 бесполезных созвонов в зуме в день.
>>36087
> В настоящее время PayPal Россия не открывает новых личных или корпоративных счетов. Приносим извинения за причиненные неудобства.
:(
Можно на Сбер или Телькофф, please?
5536 9140 4254 9687 Тинькофф
5469 4000 1294 2426 Сбер
Админ, не бань, я безработый.
>>36072
Лол, это Блэйк, он гетеро, если это важно, т.к. у него есть девушка Эйва.
>>36075
Хорошо, если будут на это весомые запросы.
Туда тоже периодически скидываю видосы в свой тредик. Админская почта их не работает, в вк читают и не отвечают.
Пусть он зайдет в свой Сбер приложение и посмотрит такие 2 вещи как:
IBAN (это номер счёта международный, которому его карта привязана) и BIC (код для распознания номера отделения банка).
А донатер в своем северокорейском банкинге выберет "отправить на счёт" или "перевести по реквизитам" и введёт эти 2 хуйни. Придет из любой точки мира за 2 дня максимум или за минуту минимум.
05.12.13, чтобы в армию не ходить.
У меня есть такая штука как runLater(Runnable) которая внутри тупо создает тред и выполняет в нем Runnable. А еще ввод с клавиатуры из другого потока. Еще прием данных тоже в отельном потоке. Получение данных может быть инициатором отправки в конечном счете. Так что я не вижу смысла в очереди когда есть synchronized, который по сути ту же самую функцию выполняет и требует меньше телодвижений.
Но ведь здесь не гд, а джава тред
Как то все переусложененно. Инпут, прием, отправка - это всё не должно вмешиваться в поток геймлупа. Потому что ведет к усложнениям из за синхронизации общего состояния и т.п. Каждый из из этих потоков должен быть буфером-очередью, а мейнтред опрашивать и наполнять эти очереди. Это стандартный геймлуп в любой книжке по движкописательству.
Так получается же, что все и так как у тебя на картинке, только в потоках вместо очередей синхронизация. Чем по факту synchronized будет отличаться от твоих while(true), кроме того что это сложнее поддерживать?
Нет, сначала ушел, хотел немного передохнуть, а потом одномоментно решил запилить игру.
Ну тогда я не понимаю твою архитектуру. Если все так же, то и синхронайзед не нужен.
> Чем по факту
Геймлуп не будет блокироваться когда хочет отправить команду.
Инпут и ресайвер ну будут блокировать геймлуп когда им это не позволено.
Не нужно сотню раз за секунду дрочить ос со своей синхронизацией.
> кроме того что это сложнее поддерживать?
Обычно все хотят уйти от сильно связанной синхронизации к очередям, хотя бы потому что с ними вероятность дедлока отсутствует. Модель акторов или реактора, например. Первый раз слышу что это сложнее поддерживать.
Но я не прошу взять и делать рефактор, просто мысли.
Меня напрягают эти тысячи дубликатов с большой вложенностью, насколько они влияют на производительность. Вроде в новых версиях Хибернейта он сам решает, когда перейти с join на селект, но тут я не уверен.
Но выполнять селект для каждого элемента коллекции кажется тоже полным говном.
Попробуй оба. Посмотри на сиквел и погоняй с explain
Я тут подумал, да, ты прав. Отрефакторю когда/если сталкнусь с проблемами связанными с этим.
Достаточно сидеть на настолько старом стеке, где этих уязвимостей ещё нет.
Всем похуй оказалось.
Уже давно отменили в пользу кваркуса. Спринг-аннотаторы оказались никому не нужны.
Конечно, не станет. Потому что он навека. Всё остальное - лишь его безликие недокопии
Сравнил жопу с пальцем. Жквери - это какие нибудь Apache File Commons, которые после изобретения java.nio никому нахуй не нужны.
Ну и ладно, будем по старинке программировать на XML.
>Сравнил жопу с пальцем. Жквери - это какие нибудь Apache File Commons, которые после изобретения java.nio никому нахуй не нужны.
Да вот всём Apache commons хорошо пишется и ранится, а не ругается на кодировки, стринги вместо чар и прочее, как библиотеки из коробки джавы.
Только выиграли получается
А что тебя не устраивает? Ромбы чекаются и запрещены, а больше до чего-то довольно сложно доебаться.
Изначально из-за ромбов https://en.wikipedia.org/wiki/Multiple_inheritance#The_diamond_problem В интерфейсах ромбов не было. Потом добавили дефолтные методы, на них стали чекать. А почему в классы так и не добавили? Ну наверное решили, что это хуевый дизайн. Одно дело множественное наследование в API (чем и являются интерфейсы) и совсем другое наследовать реализацию.
Ебало представили?
Бугаенко спок
Любитель дебага в 4 часа ночи, спок.
Классы наследуют разные классы, но могут имплеменитить одни и те же интерфейсы. Заводить одинаковые поля в разных классах?
Если у тебя это произошло, у тебя кривая структура, и тебе это аукнется в будущем, но тогда тебе уже придется переделывать не 4 класса на 150 строк, а 200 на 4к.
Работает плохо. Ты когда последний раз дебажил в 4 часа ночи? Я ни разу с тех пор, как начал писать чисто.
Условно-резко. Я трижды резко преисполнялся в своем сознании. Первый раз я научился пользоваться методами (мемная ситуация, но до этого я почти месяц кодил прямым кодом и копипастом). Потом научился юзать объекты, потом въехал в полноценное ООП. С того момента, как въехал в ООП ни разу не дебажил сверх срока, да и вообще общее количество багов за пару лет можно на пальцах посчитать.
Ну заебись тебе. Дневник ведешь?
Я программирую с 8 лет и сейчас, конечно, проблемы решаются гораздо быстрее. Но дефолтные методы мне жить не мешают.
техлид не будет работать за эти гроши (меньше $100K в год), следовательно ты мамкин пиздабол, скорее всего обычный джун
2500$ мидл чета пукает
Двачую вопрос.
Чем больше у тя квалификация, тем меньше вообще языки отличаются. Для джунов перейти с джавы на пхп или наоборот непосильная задача, а помидорам вообще похуй на чем писать.
Отличается кардинально. На РНР у тебя язык заточен для бэкенда, а джава нет, тебе надо будет использовать кучу фреймворков, чтобы сделать то, что на РНР делается 1 оператором.
Сто человекочасов это неделя раскуривания.
>>38176
Примера нет, анон пхпдебил высрал хуиту, впрочем как всегда
По нормальному нужно чтобы одни объекты содержали другие объекты, а наследования как такового быть вообще не должно.
Слишком медленный. Однажды нужно было в цикле сложить 50к чисел, чуть не уснул пока он крутил его.
Котлин ебливая параша для залетных в джаву из петухона, работающая на 8 jvm с злоебучими паузами gc, с уродливым петухоноподобным синтаксисом (fun сука, нахуя это писать????) и хуевой тучей игрушек дьявола в виде функциональных соблазнов, которые потом вылезают через месяц после написания в виде скрытых багов
То есть принципиально ничем не отличается от любого другого языка.
Наследования в ООП не должно быть, это даже такие величайшие умы как Фаулер и Бугаенко признают.
Имплаинг, что наследование плохо.
К таким выводам приходят только опытные люди. А ведь они тоже начинали с того, что работник наследуются от человека.
Ты опять выходишь на связь, Егор?
Лучший ответ.
Долбень, в стандартной либе джавы есть инструменты для поднятия быстрого ХТТП-сервиса, из коробки.
выбора не так уж и много, если айти таки начнет наставать пизда то меньше всего достанется java, php ну и где-то останется шарп
если ты уже на работе то читать надо то что относится к таске, остальное смысла нет
Если делать что-то потяжелее интернет-магазинов, то внезапно оказывается, что бэк далеко не всегда веб.
Давай, откручивай теперь свою пыху от хттп сервера и научай ее жить дольше пары секунд. И чтобы вот так же легко, в одну строчку.
Но как мне изучить Спринг, если по нему нет актуальных книг? По ASP.NET целые книги посвящаются разбору разных веб-фишек, а тут от силы 5-10% от книги, да и то там устаревшая инфа для старого спринга, а сейчас уже вышел спринг бут и там всё по другому.
Думаю, что да. По крайней мере, никто не запрещает тебе перестать ее читать, если все слишком сложно.
Только читай на английском, а то перевод на русский может быть что-то вроде: охлади трахание, углапластик
Нахуя тебе книга? Никто в здравом уме не будет писать книгу по спрингу, потому что это нахуй не нужно. Пересказывать документацию никто не будет
А то за что ни возьмись, либо 11-ю, либо 8-ю им подавай.
А может я хочу в своем Селениуме поиграть с фичами 17-й Джавы. Смотрю же, что грешат на синтаксис питона.
Спринг согласился, на остальное похуй. Всех додиков, которые до сих пор не модуляризировались, надо отменить.
Твоей мамаши не существует. Пописал в рот всем динозаврам, из за которых каждое обновление - гемор "амы не хотим до не лтс обновлятся"
Бесплатными бета-тестами в своих пет-проектах можешь заниматься.
>коровабибуса не существует кококо
>либесральная эканомика и собственное развитие, но донбасс заберём сука и крым
а вот с этого вообще захрюкал
>Под занавес Россию, видимо, ждет Майдан, трансфер власти, передел собственности, амнистии, аресты, и … окончательная победа добра над злом.
Кто на линухе сидит?
Какая сборка лучше подходит для работы со сринговыми стеками? +Docker, Kafka~
>блог бугаенко о политике
Делаешь это неправильно. Блоги программистов о политике, будь то бугаенка, всё-ещё-сергей-немчинский или ит-борода - кал говна.
Согласен, раньше иногда слушал Бугаенко как фрика, как шоу, и все думал, что же с ним не так? После последних высказываний все стало на свои места.
>Сап.
>Кто на линухе сидит?
>Какая сборка лучше подходит для работы со сринговыми стеками? +Docker, Kafka~
Ставишь Ubuntu LTS версии и получаешь очень лёгкое и непринужденное гугление.
Остальные дистрибутивы - это боль. Ты будешь чинить ОС больше, чем решать свои задачи.
>Сап.
>Кто на линухе сидит?
>Какая сборка лучше подходит для работы со сринговыми стеками? +Docker, Kafka~
Ставишь Ubuntu LTS версии и получаешь очень лёгкое и непринужденное гугление.
Остальные дистрибутивы - это боль. Ты будешь чинить ОС больше, чем решать свои задачи.
>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
Он там свою хуету в энтерпрайз притащил. Ебальники бизнес овнеров имагинировали?
>ничего не-вебовского не видал
>раздает советы как правильно делать бэкэнд
Ну вот собственно что и требовалось доказать.
>ниже, чем хттп
Охуеть, а остальные прикладные протоколы уже отменили, над тсп есть только хттп теперь?
Внутри большой микросервисной софтины вероятность найти сервисы без апи, доступного по хттп стремится к 1. Более того, иногда они могут даже вообще не общаться с другими сервисами.
Если ты за специфику предметной области спрашиваешь, то пошевели моском сам - где и насколько распространены подходы, отличные от "прими хттп запрос, отдай ответ, умри".
Надеюсь, это жирный троллинг такой, спрашивать конкретные примеры сервисов, которыми каждый первый ежедневно пользуется.
ОП спрашивал что вы делаете на работе, кроме ххтп-веб на джаве, а не чем ты пользуешься ежедневно.
>ОП спрашивал что вы делаете на работе, кроме ххтп-веб на джаве
>>2338601
>Какие не-веб штуки есть в интерпрайзе
Хреново быть тобой - заявлять то, что опровергается скроллом треда на два поста вверх.
>>Какие не-веб штуки есть в интерпрайзе
Жопой читаешь? Он спрашивал про не-веб в интерпрайз деве, а не то что ты в повседневной жизни используешь.
Не, ну как программист он интересный.
Да вообще есть много людей, которые интересны в том, в чём разбираются, но отвратительны в политике (Джордан Питерсон сразу приходит на ум).
>>хочу в своем Селениуме поиграть с фичами 17-й Джавы
Через полгода спринг 6 на джаве 17 выходит, следом все остальные подтянутся.
>>Какая сборка лучше подходит
Любая, на которой запускается докер. Даже виндовс справляется со всем.
Ещё минус сайтов в том, что там отдельные статьи и ты можешь легко пропустить половину из них, а там будет важная инфа. Книгу же ты читаешь от корки до корки и получаешь весь объём знаний.
Кроме протоколов брокеров сообщений никаких типичных кейсов в интерпрайзе и нет. Но с брокерами и пхп работает.
Так ты сказал, что есть что-то что не может пхп на беке, что может жаба. Конкретный пример можно?
Преобразование из одной джейсонины, полученной с рест-клиента, в другую, отправленную на рестконтроллер с сохранением первой в постгресе и кешированием в редисе.
Вместо фронта - сваггер.
Интересно звучит?
У него бот ждет, пока while покажет false. :-D
>да, я не первый раз пытаюсь тут хотя бы копейку одолжить, анон
Так операция уже прошла по твоим словам.
Хвостик пороси.
Тебе нужно расширить функциональность класса, например, добавить транзакцию. Ты никак не меняешь свой код, а только ставишь анноташку. Благодаря прокси тебе не надо самому оборачивать свои методы в транзакции, проверять права пользователя, кешировать результат, ...
транзакция ведь делается аспектом, почему этот аспект не может придти на изначальный объект?
Так тебе надо про спринг или про веб?
Если ты имел в виду Spring MVC, то для этого есть книжка по ServletAPI.
А спринг это и есть бины и DI.
Что ты имеешь в виду под "прийти на изначальный объект"? В твоём классе нет никакой логики управления транзакцией. Откуда ей там взяться?
Вот мой класс.
@PersistenceContext
private EntityManager
public void businessLogic() {
}
Я пишу вот такой аспект:
@Component
@Aspect
public class TransactionLogic {
@Before("execution(public void businessLogic()) ")
public void transactionAdvice () {
UserTransaction utx = entityManager.getTransaction();
try {
utx.begin();
} catch (Exception e){}
}
}
Я как бы херню написал, но вот как-то так я понимаю аспекты. Как бы зачем прокси энтитиМенеджера? я не могу понять
Не работал с em напрямую.
Em не тредсейф, а значит, на каждый реквест нужно создавать новый em = emf.createEntityManager(). Если ты закинешь em в объект, то чтобы работать с новым em, тебе нужно создавать новый объект, в котором есть этот em. А так ты можешь сделать прокси над em, которая будет делать следующее: если em ещё не создан для данного треда, то мы создаём его и сохраняем, а если em уже есть, то мы просто отдаем его
Он ещё у бороды когда был там было тоже самое по куче коммитов почти каждый день.
Он долгие годы коммитит кучу кода каждый день. Если там такое говно, то почему его не вывели на чистую воду, что он шизик?
Сейчас делаю через доп запрос перед гет/апдейт/делит. Все работает, но доп запрос смущает немного.
Подкидывали идею сделать через row-level-sequrity в самом постгресе. Хз как этими роу левел пользоваться. И как ошибки отдавать из базы в код, к потом в апиху. Есть у кого то опыт с этими штуками?
Так, последний бамп на тему Эккеля и "думать в джаву".
В прошлых тредах упоминался, но какого-то консолидированного мнения не было.
Я так понимаю, что частично устарело? Читал первую главу, вроде неплохо рассказывает. Как смотрится на фоне Шилдта?
Окей, я сам думал о Хорстманне, раз уж он
>Твой выбор если уже есть/был опыт других языков и нет потребности в разжевывании материала.
Спасибо
Мне кажется, что проверка прав доступа к сущности должна происходить на уровне приложения
В небольшие неизвестные тебе компании. jsp, апплеты и свинг никто сейчас не спрашивает
А если спрашивают сразу и незамедлительно нажимай "завершить звонок".
Вместо того, чтобы дрочить в треде, лучше бы читали ДимСоула - архитектора с 7 годами опыта в топовых конторах.
>Вместо того, чтобы дрочить в треде, лучше бы читали ДимСоула - архитектора с 7 годами опыта в топовых конторах.
А в чем суть анекдота? Поясните для летчиков
Чем отличается от обычного @Builder?
Смотрю в книгу - вижу фигу
Поясните, плиз
В том проекте что я разбираю уже есть Ломбок.
На данный момент хочу понимать че он делает
Поясни, плез
Что за fallback factory? Гугл про хистрикс выдает всякую шляпу.
В треде и так 50 архитекторов сидит.
>>уже есть Ломбок.
Он есть везде, кроме совсем уж древнего легаси на жаве 7-
>>че он делает
https://projectlombok.org/
если вкратце - гетеры, сеттеры, конструкторы, тустринг, эквал/хэшкод - на аннотациях вместо бойлерплейт кода.
>>39451
>>Что делает в ломбоке анотация @Builder (toBuilder = true) ?
погуглил для тебя на русском.
https://easyjava.ru/java/lombok/builder-v-odnu-stroku/
А в интернете есть?
Где хранятся права пользователя? Как ты определяешь, кто может пользоваться сущностью, а кто - нет?
Просто есть юзер-айди в одной из связанных таблиц. И этот айдишник приходит вместе с запросом. И по айдишнику через селект с джоином перед основным и идет проверка прав. Вот думаю нельзя ли тот функционал предварительного запроса на row level security.
Надо. Юзер ид приходит вместе с запросом(пока в хедере отдельном). И если запрос гетбайид/апдейт/делит, то проверка перед основным запросом на соответствие айди сущности с юзер ид, если не совпадает, то эксепшон и 403, если совпадает, то еще один основной запрос. А если геталл, то просто фильтрует по сущностям связанным только с этим юзер-ид.
А ты аутентифицируешь юзер ид? Я клоню к тому, что ты можешь хранить инфу о пользователе в сессии/jwt. Тогда не придется ходить в базу
пользователя пока вообще нет. есть только его айдишник в одной из сущностей, связанных с моей целевой сущностью .
Понял. Тогда я бы все-таки доп селект делал. Не думаю, что размазывать логику - хорошая идея. К тому же, в будущем проверка прав доступа к сущности может усложниться, и будет намного проще, если она к тому моменту будет в твоём приложении, а не в базе
Ну не только ты мне так сказал, это логично все. Ну а по этим row level security можешь что-то сказать? Начинал по ним читать статью и уснул на середине. А теперь и не надо вроде как. Но интересно, что за штуки. Хотя наверно если такие есть, то на проекте есть дба и он этим занимается.
Вообще хз. Ни разу этим не пользовался и надеюсь, что не придется пользоваться. Мне кажется, что единственный вменяемый юз кейс - когда пользователи пишут запросы в бд напрямую
Почему если во втором цикле for i/j заменить просто на i, то ничего не выводится?
int i,j;
boolean sprime;
for (i=2;i<100;i++){
sprime = true;
for (j=2;j<=i/j;j++){
if ((i%j) == 0)
sprime = false;
}
if (sprime)
System.out.println(i);
}
У тебя вложенный цикл итерируется до i=j. на последней итерации условие всегда соблюдается и sprime всегда false при выходе из цикла.
Шарпоблядь, в твоём шитпосте ни слова про жабу, зато говорится, что айти умерло.
>>2337869 →
А не знаешь случайно, в следующем издании это не пофиксили? Я смотрю в топе выдачи сейчас 6-е уже.
6-е издание не читал и его вроде как ещё нет в открытом доступе. Я в итоге выбрал 4-е издание.
А в 4-м что, какая-то совсем другая инфа? Просто обычно по мере апа версии ошибки сокращаются. Я так понимаю на границе каких-то изданий произошел переход на спринг-бут с "обычного" спринга. Может поэтому.
Почему тогда он не разделил эти две книги на независимые, интересно. Если контент сильно отличается.
А есть вообще смысл ебаться с базовым спрингом сейчас? Какая ситуация по отрасли с этим?
Куда развиваться в джэве, чтобы меня не заменили упругим зумером? Почитываю проджвм и проджвмджобс и вижу толпы упругих зумеров, которые уже работает в крупнейших компаниях и разговаривают о высоком!
В 99% случаев - никакой. Локальную переменную можешь хоть как ArrayList объявлять
Есть вкатуны, которые вкатились после 30lvl или ближе к 30.
Долго уже работаете?
Как ощущения спустя год, два, больше?
Быстро вникли в работу, быстро прокачиваетесь?
Что можете посоветовать, чтобы сэкономить время и усилия?
Я вкатился недавно.. Но чет мне кажется, что очень медленно ползу. Дохуя всего надо впитывать со всех сторон. И очень легко потеряться.. впитывать лишнее, то что не нужно мне
связи нужны, уметь подскакивать кабанчиком и делегировать
Если тебя устраивает контракт интерфейса Collection - берешь Collection.
Если List - берешь List.
В большинстве случаев этого достаточно. Юзать то, что умеет только ArrayList пригождается редко.
так а ArrayList может меньше чем Collection?
Смотря какие у тебя цели и какой стек ищут твоём городе. Я для себя решил начать лучше с обычного спринга, чтобы потом было понятнее что под капотом у спринг-бута.
Когда догонят года, сновя сменят нумерацию, чтобы мажроный номер совпадал с годом, а минорный - с месяцем.
Тебе будут доступен разный набор методов у того объекта, на который ссылается переменная. Самый маленький набор будет у коллекции, зато ты в любой момент, ничего не рефакторя ниже, сможешь заменить этот объект на любой другой тип коллекции, даже совсем не относящийся к спискам, например, Set. И у тебя гарантированно ничего не поломается.
Самое большое количество действий тебе будет доступно с эррэй-листом, но зато ты будешь обязан именно его юзать как объект, либо любого его самодельного наследника.
Короче, ответ такой, что зависит от ситуации и задач. Но вообще считается некоторым зашкваром юзать такие дефолтно-АПИшные вещи через конкретные реализации, надо юзать интерфейсы. На практике в 95% случаев используется варик 2.
Еще можно использовать такое соображение - используй такой уровень иерархии наследования, который обладает минимально-достаточным АПИ для твоей задачи.
>>41224
> 1 версия в 3 года
> Ну тормоза ебаные, шарпы с дот-нетом вон кипят развиваются, а на этом говне только пенсионеры-ебанаты пишут, ну тормозаааа
> 3 версии в год
> ну куда вы прёте ебана, я еще то что 3 версии назад запилили не освоил
После 9 уже всё стало ясно.
>>Ну тормоза ебаные, шарпы с дот-нетом вон кипят развиваются
С полугодовым релизом большого развития не выйдет - некогда новые фичи пилить, надо готовиться к релизу и тестировать.
Ведь подготовкой к релизу и тестированием должны заниматься все разрабы JDK, а не тестировщики и пара человек, отвечающая за релизы.
Почему может не работать валидация формы? Вроде все включено, никаких ошибок нет, а в браузере никаких ошибок не ловится (в дебаггер пустой объект errors приходит)
спасибо, теперь понятно
Обертку на javac?
Вся суть Спрэнг Фримверка, лул. Что-то там в рантайме не подцепилось и ищи-свищи, лал!
Общая проблема всех фреймворков, где аффтары додумались юзать рефлексию вместо того, чтобы сделать нормально через ООП.
Хорошо, что на этапе тестирования вскрылось. А прикинь это бы в продакшен запульнули, лал!
>Spring In Action
Вся суть этой долбоёбской книжки, скорее. Там листинги хуй пойми какие. Оказалось, что автор забыл указать добавление зависимости:
spring-boot-starter-validation
В итоге когда не стали подтягиваться валидаторы, я вручную нашел зависимости validation-api и валидатор-гибернейт. Нужные классы-то подтянулись, но где-то там что-то не срослось, в итоге валидация не происходила.
Раз уж о валидации речь, кто знает как можно валидацию @CreditCardNumber пройти с пробелами в номере карты, как у всех нормальных карт? Если бы я управлял вручную я бы снес пробелы через регулярку, а тут ничем не управляешь по сути
Ну ты и урод
Они ж не могут закинуть фичу, которая еще не проверена как следует и она откладывается до следующего релиза, а там лтс и новые фичи откладываются на потом....так до сих пор лума не видим с этими релизами. Или еще чего то подобного уровня. Выкатывают только всякую сахарную хуиту.
>>как можно валидацию @CreditCardNumber пройти с пробелами в номере карты
@CreditCardNumber(ignoreNonDigitCharacters = true)
Лол. адекват.
Где там этот специалист "меняй структуру проекта, всё хуёво, аннотации для пидоров, спринг говно"
ну с кучей аннотаций + лобок получается реально кринж когда стопка аннотаций длиннее кода
напиши свою аннотацию
ахахахахха чет в голас
Ну да стал бы соевым членобабом, топил бы за лгбт в твичах))
Он не бесплатный. Понимаю, что для сеньоров - программистов 5к это не деньги...
Вы видите копию треда, сохраненную 5 августа 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.