Что такое Java? Java - язык программирования с классами (aka объектно ориентированный), где нужно явно указывать тип объявляемых переменных (aka со строгой типизацией). Заебись. А что ещё делает Java лучшим языком программирования? - На Java написано столько всего, что любая твоя невообразимая идея уже существует в виде библиотеки, которую можно скочать и юзать - Java - мультипарадигменный язык, тут можно писать в любом стиле, который тебе вздумается, даже к памяти можно получить доступ через Unsafe, но, при этом спроектирован язык для того, чтобы на нём писали в ОО-стиле. - От прошлого пункта плавно перешли к отличной проработке языка - язык с самого начала задумывался как язык для ООП и многопоточности, благодаря чему писать чистокод на Java легче лёгкого. - Java - относительно молодой язык, который до сих пор активно развивается жидами из Oracle, при этом почти неполживо опенсорсно. - Java следует принципу write once во всём. Java никогда не ломает обратную совместимость - твой код, написанный на Java 1.2 будет работать на Java 18 - и не зависит от платформы, являя из себя единственный полностью кроссплатформенный язык с кроссплатформенной экосистемой (если не считать языков-паразитов на JVM).
>>2400898 (OP) Есть три вида работника. Менеджер Офисные работник ДИректор Все они выполняют свою работу, но делают это по своему. То есть можно сделать общий абстрактный класс Работник с методом makeAction() и от него наследовать три класса Менеджер, Офисный и Директор и переопределить метод makeAction(). Но проблема в том, что каждый работник еще по разному проводит перерыв. Один может пообедать, другой пойти на прогулку, а третий позаниматься спортом. То есть в классе Работник есть еще метод общий метод takeBreak(). Но проблема в том, что нужно сделать Менеджера, который обедает, Менеджера, который прогуливается, Менеджера, который занимается спортом. Тоже самое с Офисным и Директором. Как это реализовать, желательно с наименьшим кодом? Не буду же я делать еще три класса Менеджер, который обедает, Менеджер, который прогуливается, Менеджер, который занимается спортом и т.д. Спасибо.
>>2401046 То есть нужно первый и второй метод переопределить три раза. А так же нужно создать классы, где каждый переопределенный метод встречаетс с другим переопределенными методом
>>2400898 (OP) >НЕ ГОРИТ, ПОВТОРЯЮ, НЕ ГОРИТ Джава-долбоебы, зачем вы так пытаетесь обосрать шарп в вашей шапке? Вам настолько обидно что шарпик всё больше и больше занимает рыночек где раньше господствовала джава?
>>2401111 Спасибо >>2401046 Но есть еще условие у этой задачи. Нужно провести негативное тестирование и использовать работника не по назначению. То есть Офисный работник должен попробовать выполнить работу Менеджера. Я не совсем понимаю как это реализовать, ведь у всех метод будет называться makeAction(). Есть мысль добавить в функцию makeAction() параметр String, и в самой функции провести проверку. Типа Офисному работнику makeAction передавать строку "paper" и если он ее получит, тогда Офисный работник выполнит makeAction и возвратит строку "Выполнено". Иначе, если передать Офисному сотруднику другую строку, то makeAction выведет строку Офисный работник используется не по назначению. Ну и assertEquals использовать, чтобы провести негативную проверку. А можно как то получше сделать негативную проверку "использование работника не по назначению"?
>>2401333 А как это поможет? Мне нужно будет создать 9 классов и каждому классу переопределить два метода? Или как? extends же можно только для одного класса сделать. Мост вроде с этой задачей справляется или нужно по другому?
>>2400898 (OP) Такая ситуация, я программирую на GWT ( да-да в 2022 году). Зп 45 тысяч, повышений особо не предвидется. Что делать? Сидеть учить Spring и возьмут ли на работу, сейчас же кризис, а у меня в графе опыт будет клепал кнопки на GWT. Или забить, вообще что-то учить после работы неохота
>>2401507 Никто тебе не скажет насчет рынка джунов через 2-6 месяцев, которые тебе нужны для изучения спринга. Базюлинами хотя бы на уровне jdbc умеешь пользоваться? ХТТП? Как у тебя с жабакором? Я бы в любом случае попытался.
>>2401507 Только GWT, или со всем сопутствующим Java EE-стеком работал? Если работал, то так и напиши. Все понимают, что они со спрингом во многом аналогичны, а научиться писать @Autowired вместо @Inject и @EJB ты сможешь быстро. На модные микросервисы сходу вряд ли возьмут, то на монолит на четвёртом спринге вполне могут. Ну и на собесах прежде всего спрашивают за кор, так что вспоминаешь все методы класса Object и иерархию эксепшенов.
>>2401641 Тогда от чего там зависит название поля в jsonе? Логика явно разная. >>2401642 Там нет нихуя. Вообще я не нашел нигде этой информации, но сам нигде не найду.
Есть какой-либо объект, к которому один тред имеет доступ на чтение, а другой тред - на запись. Нужно, чтобы читающий тред мог отслеживать изменения в этом объекте. Ну то есть каким-то образом подписаться на изменения объекта, чтобы когда пишущий тред менял определенное поле, в читающем треде вызывался колбек.
Как такое в жабе можно сделать? Суть в том, что я не хочу в цикле while (true) постоянно обращаться в читающем треде к полю объекта, хочу чтобы все асинхронно-неблокирующе без лишних бесконечных циклов произошло.
Ну или пусть даже не объект будет шариться между потоками, а один поток (1) отправляет сообщение другому (2). Как второй (2) тред может без лишних циклов и блокировок вызвать определенную функцию в зависимости от содержания сообщения, присланного тредом-1?
>>2401681 Если тебе нужна общая очередь проще всего через LinkedBlockingDeque сделать. Но это циклы, а без циклов, асинхронщиной с синхронизацией ты скорее на дедлок нарвешься в итоге и сломаешь голову. Вообще специфичная хуйня, без деталей что ты делаешь не подсказать.
Что-то вот такое хочу сделать. Через блокирующуюся очередь я примерно понял как сообщения передавать, только как без лишней ебли и циклов сделать вызов нужного колбека в зависимости от содержания сообщения?
>>2401767 То есть 0 производительности из-за рефлекшена будет? Ну пусть даже и так, мне сама концепция пересылки сообщений и ивентов интересует. Как самому написать простой ивент бас?
>>2401776 >>2401777 Я студент на каникулах, времени хоть жопой жуй, мать кормит и на работу не надо. Есть какие-нибудь статейки уровня "write my own event bus from scratch?"
>>2401753 Так у тебя без цикла второго потока не будет существовать почти сразу после вызова thread2.start(). Все колбэки в onMessage будут вызваны в том потоке, который диспатчит сообщения листенерам в MessageBus. То есть который ты дал однопоточный весь.
>>2401790 Я предполагаю, что onMessage будет каким-то образом ждать пока прилетит сообщение. Типо если messageBus пустой, то поток просто выключится сам и не будет загружать CPU, а когда прилетит - то автоматически включится и дернет нужную фунцию.
>>2401799 Поток умирает после завершения метода run. У тебя он завершается сразу после регистрации всех колбэков. Можешь вызвать принты с Thread.currentThread().getId() и убедится что у тебя все вызывает в том потоке, который кладет сообщение в очередь. > поток просто выключится сам и не будет загружать CPU Юзай LinkedBlockingDeque с циклами, если хочешь чтобы вызов был реально в другом потоке. Там блокировка без busy waiting и эффективная синхронизация под капотом.
Этап 1. Кто то бросает ивент в ивентовый автобус Этап 2. Очкобус ищет подписавшиеся на него листенеры в хешмапе листенеров Этап 3. Очкобус вызывает метод у подписавшегося листенера
ДжаваРаш стоит купить если от него хочешь только подтянуть базовый синтаксис и встроенных базовый функционал на задчках? Все эти стримы, многопоточность, 100500 видов Коллекций, АррэйЛистов итд То есть ничего больше не жду от него. Стоит ради этого тратиться?
Так какие есть сборники мурзилок, кроме Баелдунга. Сейчас мой алгоритм по изучению новой технологии: Баелдунг -> более частный случай, чем там описано -> стековерфлоу -> на 3/4 ответы помогли, но часть - бред или устарело -> дока -> просрав время и прочитав 70% доки, где хоть как то могла упоминаться моя проблема -> поиск по гитхабу по ключевым словам -> пробрался среди кучи говен форкнутых хеловордов -> случайна наткнулся на видос индуса/статью на медиуме/нонейм сайте, ища по другим ключевым словам нашел решение которое легче, изящнее и почти полностью подходило к моему кейсу.
>>2401943 Не согласен. Когда ты ноль в чем то, то даже не сможешь составить конкретный запрос. А на баелдунге можно представление на уровне хеловорда получить на 2-3 странички.
>>2401930 Гораздо лучше думать своей головой, чем спрашивать у кого то что то в таком гадюшнике, как стаковерфлоу. Там сидят чсв ебанаты, которые врят ли тебе помогут. Сколько спрашивал там, и тут, тут гораздо умнее народ решения предлагает и универсальнее. А чтобы не генерировать велосипеды можно поискать либу какую то.
>>2401958 Так вопросы типа: - как не самая популярная функция реализована в библиотеке хуйня-ненейм - как подружить библиотеки хуйня-нейм и пиздула-нейм. Обычно там кто-то это уже задал и ответ нормальный(и чаще всего ответ есть в доке но он сформулирован так, что найдешь только прочитав половину доки). Но иногда бывают и хаки с кишочками библиотек, которых нет в доке. Но вот у меня бобануло на стековерфлоу от вопросов по спрингкафке. Там везде отвечает техлид этой ебучей спринг-кафки и всем хамит и иногда отвечает хуйню.
>>2401969 https://stackoverflow.com/users/1240763/gary-russell вот этот чел. ну а по пруфам, я не нашел сходу, у него тысячи ответов по этой залупе. Ну в 2-3 местах видел, как он грубо людям отвечал в комментах на его ответы, когда его переспрашвали. А про хуйню там вообще был один единственный вопрос был. Там спросили, мол чел, как мне изолировать тесты на @KafkaListener. А он и отвечает - создавай топик на каждый тест. А потом я читаю у него же в другом ответе, что контейнер этих листнеров, который управляет транзакцией нельзя переназначить на другой топик.
>>2401981 >Там спросили, мол чел, как мне изолировать тесты на @KafkaListener. А он и отвечает - создавай топик на каждый тест. А потом я читаю у него же в другом ответе, что контейнер этих листнеров, который управляет транзакцией нельзя переназначить на другой топик. Хороший кстати вопрос. Неоднократно сталкивался с тем, что в тесте прилетало сообщение от другого теста и оба падали. И это без параллельного выполнения даже.
>>2401987 И как ты решал этот вопрос? Я нашел три стула, если в контексте кафки, без спринга: - Как сказал дед, создавать новый топик под каждый тест. И для консьюмера без спринговских контейнеров все норм. - Удалять в рантайме через Admin api топик в afterEach и создавать его в BeforeEach. У меня не получилось через спринговую обертку сделать. Не уверен, что можно в нативном кафка клиенте сделать. Гэри Рассел как раз советовал этого не делать, уже не помню почему. - Пересоздавать тестовый брокер. Ну типа перегружать тестконтейнер(это вообще пиздец, если там штук 5-7 тестов на метод-листнер). Или с EmbeddedKafkaBroker тестовый класс аннотировать @DirtiesContect(AFTER_EACH_TEST_METHOD), который перегружает весь поднятый спринговый контекст, что тоже на самом деле долго. Пока на последнем остановился с встроенным спринговым брокером.
>>2402017 Ага, а как я проверю, что необработанное после эксепшена сообщение после нужного числа ретраев в dlt полетело? Как я фильтр, по которому я отбрасываю 95% сообщений топика и беру только то, что мне надо? А я потом еще ретрай топики прикручу, обработчики ошибок десериализации и еще чего-нибудь. Да и в методе @KafkaListener у меня тестировать нечего - только вызов сервиса - KafkaMessageHandler и логирование.
>>2402017 Ну и сам сервис-хенлер тестировать это вообще хуйня, там прям классический юнит. А тут кроме изоляцией еще сиди угадывай как авейты правильно подобрать и сиди ищи ассерты и матчеры. Я реально потратил на эти тесты больше времени, чем на саму фичу. Причем в этот раз в разы.
>>2402025 Ну а мой тимлид так не считает. Я реально прошерстил кучу тестов на кафкалистнер. И везде тестируют только один удачный кейс. В следующем сервисе мне еще и батчевую обработку нужно будет прикрутить. А на этой неделе нужно идти к автору продюсера и говорить, что он продюсер неправильно написал. Там нет очередности отправки, и отправка "бросил и забыл", даже без логирования незаписанных в топик.
>>2402041 Ладно, теперь от кафка тестов буду отбиваться, скажу что мне в чатике по кафке так сказали. Буду только на сами сервисы-хендлеры писать. На вопрос уверен ли я что это так работает буду отвечать, что так в доке написано и что потыкав на дев окружении все пашет.
>>2402448 Прямоугольник с кружочком внутри должен наследоваться от прямоугольника. Наследование квадрата от прямоугольника это наследование машины от человека
>>2402448 Любой квадрат является прямоугольником. Вообще любой. Не существует квадратов, которые не были бы прямоугольниками. Не любой прямоугольник является квадратом. Я с лёгкостью приведу пример фигуры, которая прямоугольник, но не квадрат.
>>2402448 Зависит от того, в каком контексте рассматриваются понятия "квадрат" и "прямоугольник" в программе. Но на практике, почти что всегда наследование одного от другого неверно. Вместо этого оба они обычно наследуются от "фигуры".
Помогите люди добрые, в гугле забанен, стековерфлоу не открывается, коллег нет что бы спрашивать нубские вопросы. Устроился в контору, работаем на забугорного барина. Я один единственный на jave, остальные джс и пхпшники. Пилю на спринге херню микросервисами. 7ми этажжные sql запросы через jdbcTemplate. Зачем я там нужен не понимаю.... Вообщем вся боль что орм использовать не могу. Внимание вопрос: есть ли какая библиотека для автоматического мапинга var foo = jdbcTemplate.queryForObject(sql) ??? про rowMapper не надо. У меня куча запросов на 20+ полей и каждый раз писать свой маппер такое себе. Я вижу это как доп аннотация в класс сущности\дто на каждoе поле. В принципе это легко запилить за несколько часов, но зачем если можно потратить часов 10 на гугл?
>>2402759 >Вообщем вся боль что орм использовать не могу. дурачок. В орм тебе эти семиэтажные запросы придется имитировать и делать хуки для их получения. А тут просто пишешь без лишних движений и всё работает. И один раз написать маппер на 20 полей это много? Сколько это по времени? 10 минут?
>>2403139 Это было очевидно, 100500 курсов от инфоцыган и как результат - напечатование кода теперь не нужно даже за еду всего за пару лет. Тюльпанная лихорадка as is
>>2403426 Это не работает для меня. Я пишу URL path = this.getClass.getResources("путь к файлу"); А потом куда мне надо вот так пишу Paths.get(path.toURI()).toFile(); И это не работает !
когда заглушка говна падает в шпион унитаза должна жопа быть мокрая (фейковая вода) когда шпион бумага вытирать ненастоящая жопа убедиться что вытирать жопу вызван(1 раз) когда срешь мимо тестовый унитаз убедиться что пол обкакали
Че там по зп кабаны? Вкатился полтора года назад вбанк, из которых год не делал нихуя, сначала в одной команде пол года в штаны пердел в офисе пока все на удаленке были, потом прошел собес в другую , с повышением и зп 120к, там первые пол года тем же занимался. Ща по прошествию года в команде, можно поднять тему о повышении хочу запросить 180к, какие подводные?
Че там по зп кабаны? Вкатился полтора года назад вбанк, из которых год не делал нихуя, сначала в одной команде пол года в штаны пердел в офисе пока все на удаленке были, потом прошел собес в другую , с повышением и зп 120к, там первые пол года тем же занимался. Ща по прошествию года в команде, можно поднять тему о повышении хочу запросить 180к, какие подводные?
Че там по зп кабаны? Вкатился полтора года назад вбанк, из которых год не делал нихуя, сначала в одной команде пол года в штаны пердел в офисе пока все на удаленке были, потом прошел собес в другую , с повышением и зп 120к, там первые пол года тем же занимался. Ща по прошествию года в команде, можно поднять тему о повышении хочу запросить 180к, какие подводные?
>>2400898 (OP) Java проект Gradle выводил кракозябры, я в файле build.gradle написал compileJava.options.encoding = 'UTF-8'
tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } и в файлых, которые находятся в папке test перестали выводится кракозябры, но ����� ������� выводятся в файлах, которые находятся в папке src. Почему так, аноны? Еще когда запускаю файлы, которые находятся в папке src, выводится ошибка Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0. А в папке test все нормально. Может быть такое, что настройки не действуют в папке src?
>>2404075 Src - это общая папка, я ошибся. В ней есть папка main и test. Test нормально работает, как и зависимости JUnit, а main нет. >>2404097 Сфоркнул их тестовое, склонировал на комп. Там 5 задач, 4 нужно сделать в папке test, а пятое, по логике, в main. Я делал задачи в test, там выводили кракозябры, я добавил grandlr.build текст, который привел в первом посте, кракозябры исчезли. Пятое задание я хотел выполнить в main, но вместо текста �. Потом хотел импортировать junit для проверки, в grandle он есть, но не получается. Как я понял, grandle распространяется на папку test, а мне нужно, чтобы и на папку main он действовал. Либо другой способ как intelij сделать так, чтобы он не выводил кракозябры
>>2404463 Протектед = приват. Наследовать нельзя. Наследовать можно только если у тебя специфичная задача и только от абстрактных классов, тогда надо думать что ставить в каждом случае.
>>2404509 Если я даю доступ к полю при помощи функции, но не даю возможность изменять поле, то это инкапсуляция? Или мне обязательно давать возможность изменять поле?
>>2404519 Инкапсуляция - это когда методу, который использует твой класс, насрать, что внутри него есть какие-то поля и внутренние методы, он с данными работает через интерфейс и не знает, обращается ли твой класс к своим полям или вообще лезет в базу или по http в сторонний сервис.
>>2402070 Многопоточность можно тоже реализовать, но полноценную только если ивенты будут неизменяемыми. Неполноценную многопоточность, но всё равно достаточно годную с изменяемыми ивентами можно реализовать через последовательную обработку конкретных ивентов.
>>2404686 >крудошлёпов Чё там тестировать вообще? Своп ЖСОНов? Наркоманы штоле?
Unit тестирование вижу в пожилых вакухах госзалуп, где 3+лет опыта и 70к зп, приличные господа и про интеграционное только на скрине рассказываютуже на утро.
>>2404570 Ничего очевидного в выражении if (cond) return null; я не вижу, там может быть хоть приложение, хоть юнит тест, хоть код для запуска ракет земля-воздух.
>>2404698 Таки я исходил из того что изначально это легитимный код, который в таком виде очевидно бывает нужен только в тестировании.
Я в курсе что можно возвращать null как поехавшую реализацию исключения или из приватного метода как параметр для другого метода, но в целом похую на такие извращения.
ДЖУН ШЛЕПНУЛ КРУДУ @ ОТПРАВЛЯЕТ НА РЕВЬЮ @ ЛИД БЕРЕТ В РЕКВЕСТ В РУКУ И ПОКАЗЫВАЕТ ДЖУНУ @ НАГОВНОКООООДИЛ @ ОЙ КТО ТУТ ТАК НАГОВНОКОДИЛ? @ ФУ ФУ ФУ КТО НАГОВНОКОДИЛ? @ ТЫЧЕТ ДЖУНУ РЕКВЕСТОМ В ЛИЦО @ ТЫ НАГОВНОКОДИЛ, ДАА @ НАЧИНАЕТ С ДРУГИМ ЛИДОМ ОБСУЖДЕНИЕ ТОГО КАК ДЖУН НАГОВНОКОДИЛ @ СПУСТЯ 5 МИНУТ ИСПОЛЬЗУЯ САМЫЕ РВОТНЫЕ ЭПИТЕТЫ ВЫЯСНЯЮТ КАК ИМЕННО ДЖУН ДОЛЖЕН КОДИТЬ @ Я ВОТ ДАЛ ТАСКУ НА 2 ЧАСА, ОН ТАК ПРРРПРРРРР ЦИКЛИЧЕСКИЕ ЗАВИСИМОСТИ НАПИСАЛ @ А ВОТ ДАЛ ТАСКУ НА 6 ЧАСОВ И НАПИСАЛ ПРЯМ ТВЕРДО, ПО СОЛИДУ @ СПУСТЯ 10 МИНУТ НАЧИНАЮТ ПОДНИМАТЬ ИСТОРИЮ ТРУДОУСТРОЙСТВА И ВСПОМИНАТЬ КТО КАК КОДИЛ
Если я формашлепал в НИИ разрабатывал хуи полтора года C/C++, Qt, за 130к и хочу в Java уйти, 28 лет. На что претендовать, типа вкатун, джун джуновский за чашку риса? Или уже как человек с опытом на человеческую зарплату?
Стоит вообще при обучении касаться Java EE, сервлеты и тд. Или это говно-мамонта ненужное? Сейчас изучаю Spring. Еще вопрос. Мне предлагали изучать сразу Spring Boot, обходя Spring. Типо еще большая абстракция и всё пишится на буте. Имеет ли это вообще смысл? И помогут ли мне знания Spring при дальнейшем изучении Spring Boot? Я, как вы поняли по вопросам, нубяра.
>>2405377 > на каком уровне нужно знать сервлеты? Написать примитивный с doGet()/doPost(), задеплоить на контейнер сервлетов и дёрнуть из браузера. Это хватит для общего понимания. > классический спринг == спринг core? Спринг без бута, с обычным конфигом аннотациями. До хмл опускаться не нужно.
Надо как-то товарища inb4: уёбывай, социо с опытом в базах данных и формошлепстве на чем-то непонятном c C++ подготовить к джаве и взять к своим. Со спрингом он уже знаком слегка был ранее. Как его подать начальству и обучить? Пусть базу учит, или же затачивать под наш стек чисто?
Ребят, подскажите плз, правильно ли я вообще сделал или нет. entity: client, debt, payment. service: addClient(String name)
В сервисе я создаю клиента, сохраняю в базу, затем вызываю mapper и создаю через него ClientDTO. Соответственно метод сервиса у меня возвращает ClientDTO на рест.
Вопрос 1. Правильно-ли я сделал, что у меня на сервисе все сущности через mapstruct превращаются в DTOхи и отдаются на рест?
Вопрос 2. Мне нужно протестировать сервисный слой, и конкретно метод addClient. Но он возвращает DTOху, что не очень удобно, потому что у меня в контексте мапстракта нету. Я не могу в тесте вызвать метод и сохранить клиента, а получить ДТОху. Как быть?
Не совсем по теме, но все же. Jetbrains давала ультимэйт Idea версию по студаку, а я уже закончил и ваще бомж, есть варианты отрубить проверку, с сохранением акка, или хотя бы прост trial reset? в гугле забанили, там хуита какая-то, хочу способ из достоверного источника
>>2405509 >trial reset Каждый месяц на новую почту акк регаешь. Ещё вариант - побыть бесплатным бета тестером и скачать почти работающую бета версию бесплатно.
Анон, хочу повторить основы Java, делал вынужденный перерыв в изучении. Сложность в том, что сейчас я могу только телефон использовать на работе сижу, смотреть видос, что-то писать не могу. Есть ли какие-то приложения, чтобы самые основы повторить?
>>2405474 > inb4: уёбывай, социо Здесь вообще не тот раздел, где можно такое услышать. Любой, кто работает даже блядь копателем могил по дефолту не хикка, программист тем более, тут трындения на созвонах столько что ебанись. Ну а по твоему вопросу - вообще хуй знает, вводная скудная, его бы отсобеседовать чтобы понять уровень. Скорее всего первое.
>>2405614 > Здесь вообще не тот раздел, где можно такое услышать. Да легко. Устраивается на работу с осознанием, что родители не вечны, а перспектива голодной смерти в подворотне лет через 20 - такое себе. Кое-как проходишь собес, заикаясь и краснея из-за неумения контактировать с людьми. На работе после получения таски от тимлида расшибёшься об стенку, но сделаешь самостоятельно, т.к. стесняешься задавать вопросы, и похуй, что потратишь в 10 раз больше времени. Любые проблемы решаешь через того же тимлида, ибо боишься общаться с малознакомыми коллегами. Примерно через пару лет проходит, становится похуй
>>2405731 >Примерно через пару лет проходит, становится похуй А на то, что у всех уже есть дети, тачки, жены и взрослые проблемы, а у тебя только аниме и код, когда станет похуй, можешь примерно почувствовать?
>>2405888 Неиронично не понимаю, почему так называемые взрослые проблемы должны казаться ценнее и привлекательнее, чем аниме и код, если оно тебе нравится и материально ты ни от кого не зависишь
>>2405913 Это и невозможно понять. С самой формулировки "взрослые проблемы" прыснул слегка. "Взрослые проблемы" - это деятельность Ленина (да хоть Тесака) или высадка на луну, а не вот это ваше.
>>2405913 Потому что многим аниме и код нравятся не искренне, а как способ подавления чувства пустоты из-за невозможности социоблядствовать. Конечно, есть очень много задротов, которым похуй на социо, но хватает и тех, кто на самом деле хочет другой жизни.
>>2405934 Мне например не нравится вообще ничего. Ни код, ни аниме, ни социальная жизнь. Но заебавшее аниме можно не включать, код пока заебал не сильно. А вот от попыток социоблядствать через силу мне прям настолько тяжело начало становиться, что я прям вымотан. Правда на общение по работе мне похуй уже почти. Пишу и заебываю коллег уже на автомате. Просто представляю что они нпс в игре и их нужно пройти. А вот если идти в бар с коллегами, то там становится неуютно. От настолок вообще вымораживает. Когда я был молод мне алкоголь помогал с этим. Но теперь я даже сильно пьяным чувствую себя неуютно среди малознакомых людей.
>>2406622 Пишу по 100-200 строк в день, а потом читаю доку или книжку по очередной технологии с проекта. В неделю три созвона. Один по технологиям и два по проекту. Джун в новом проекте в маленькой галере с +- новыми технологиями. Ну а если я буду справляться продолжительное время, то на меня накинут новых задач. На мидлов вон накинули ci/cd и еще некоторые части девопса. Мне вот уже предложили настроить мониторинг за несколькими штуками и составить гайд по использованию мониторингов. Пока предложили, как текучку разгребу наверно заставят через таски. Тестировщиков нанимать не хотят - так что это тоже нам могут дать, нагрузочное например.
>>2406695 Я не тот анон что спрашивал, просто решил вклиниться. Степики я тоже проходил. Но че их указывать то? Мне тогда все видосы на ютубе, книжки и сайты со статьями тоже писать в резюме? А какие еще бесплатные курсы бывают - я хз.
>>2405464 Вообще valhalla должна была какие-то положительные изменения в дженерики привнести, но проблему стирания вряд ли когда-либо решат, ибо всем уже похуй.
Перегрузка методов довольно редко где используется вне библиотек, как и дженерики тащем-то.
>>2405355 Ну вообще Spring без бута потрогать однозначно стоит, понастраивать пару раз вручную это все дело. Хмл конфигурации не нужны. Как только потыкаешь ручную конфигурацию сразу на бут переходи. Сервлеты стоит потрогать на уровне get/post запросов, не более. EE не нужно.
Дополнительно стоит потыкать в JDBC, хибернейт, spring data jpa и еще security на поверхностном уровне. В целом для стажера имхо этого будет достаточно по части спринга.
>>2406862 То, что я перечислил учится за 2-3 недели на поверхностном уровне. Ну может с секьюрити придется чуть дольше повозиться, это обширная тема. От джуна будут требовать полгода-год коммерческого опыта. От стажера никто особо ничего требовать не станет.
>>2406862 Меня взяли на джуна за это + тесты, докер и свагер. На стажёра челика взяли чисто за то что анон выше перечислил. Ну может отвечал я на одни и те же вопросы лучше. Хотя по паттернам и солиду меня немного пропустили, но взяли в итоге. Тот стажёр по первой не мог понять зачем нужны интерсепторы.
>>2406881 Например есть респонс дто. У корня джейсонины общий формат. А в одном поле содержимое, в другом метаданные. Другой общий формат у коллекции с метаданными по пагинации и сортировке.
>>2406906 Всё правильно сказал, и посыл правильный, неверно только то, что написано между строк. Особый шарм добавляет наличие детских ошибок в "тся/ться" у субъекта, разглагольствующего про вредность образования.
>>2406891 Не знаю. У нас просто есть стандарт на респонс дто для нас. В том же дто лежат описания ошибок в случае ошибок. Для входного дто этого не надо. По коллекциям тоже в дто лежит инфа по пагинации и сортировке. Во входном например не может быть инфы о общем количестве страниц или записей. Ну и в некоторых местах мы и дто с данными можем наследовать. И там тоже может быть 4 поля одинаковых типов а два разных. Тоже через жинерики решается.
>>2407037 Так сейчас пишу код. Но как все важное напишу, то там еще на год на меня тасок заготовили в том числе вот таких "инфраструктурных", типа мониторингов. Но так как там даже в моем основном микросервисе много чего писать(ну а потом поправлять еще, пока фронты только-только до него дошли) скорее всего повесят параллельно. Просто мидлы уже параллельно всякой инфраструктурной штукой занимаются больше чем разработкой. А мне честно говоря не хочется, я еще и в написании кода не супер уверенно себя чувствую. А тут кроме ковыряния в конфигах всяких штук - еще и админов много пинать придется(по идее всем ололо-девопсом они должны заниматься, но они не умеют и не хотят - тупо подымают виртуалку и дают тебе креды если вещь не особо критичная).
>>2406862 Если ты не умственно отсталый, то тебе эти лычки не должны быть интересны. Единственные важные для тебя параметры это чистый доход и трудозатраты. А они в большей степени зависят от конторы и конкретно проекта, чем даже от твоих скиллов.
>>2407100 В других местах, куда меня-вкатунца брали было еще хуже. Тут маленькая галера(40 чел) и девопсов нет, но хоть какие-то процессы начинают налаживаться. И технологии более-менее свежие. А там и вакансия единственного прогера-многостоночника и древнее легаси без тестов. Да и от девопсов даже в средних конторах наверно будут отказываться. Нам вот обещали тестеров нанять, но в связи с кризисом как-то начали затягивать и наверно не наймут.
>>2407420 Это ковариантные дженерики. <? extends T> - символ подстановки с верхней границей(продюсер - дает читать/не дает записывать). например: List<? extends T> - лист может содержать либо обьекты класса T(это тип), либо наследуются от него.
<? super T> - с нижней границей (консюмер - дает записывать/не дает читать). List<? super T> - может содержать либо типа T, либо те классы, от которых Т наследуюется
>>2407547 и? у тебя один дженерик потребляет коллекцию (т.е дает писать в нее обьекты и проверяет тип), второй дженерик читает коллекцию(писать в нее не дает, дает только читать и проверяет тип).Ты делаешь 2 метода 1. pushAll (Collections<? extend T> list) 2. popAll (Collections<? super T> list)
>>2400898 (OP) >вторая пикча Джависты сами в шапку поместили пикчу, где они изображаются пидорами. То есть официально: джависты - пидорасы, с признания самих же джавистов. Хотели оскорбить питонистов, пхпшников и шарпистов, а обоссали себя. Бывает же такое.
Двадцать лет уже вяло увлекаюсь погромированием, никак не вкачусь. В 13 ходил на курсы по Basic, в 14-15 - по С и С++, в 16 открыл для себя линупс, системные языки программирования, стал пробовать всякие перлы, тикли и наконец лиспы и пролог. На несколько лет совсем разочаровался, а теперь мне 35 и я хочу попробовать обмазаться джавой просто чтобы зарабатывать более-менее. Посоветуйте самоучитель больше похожий на справочник, желательно с акцентом на особенностях джавы в сравнении с мясом, например. Спасибо.
>>2407774 > Посоветуйте самоучитель больше похожий на справочник, желательно с акцентом на особенностях джавы в сравнении с мясом, например. Ты чё специально реквест создавал под уже существующее? Хорстманн, блядь, в шапке же написано.
>>2407774 Зачем тебе справочник, если есть бекграунд и цель не просто скоротать время на дрочь, а работу найти? Справочник это 100500 методов стандартной библиотеки. Да и вообще толстая книга будет вредна. Берешь короткий туториал, например на метаните, быстро его читаешь и идешь к спрингу пилить круды. К толстым книгам и справочникам возвращаешься, когда что-то будет непонятно по ходу изучения фреймворка, пиления пета или подготовки к собесам.
>>2407534 > List<? extends T> - лист может содержать либо обьекты класса T(это тип), либо наследуются от него. > List<? super T> - может содержать либо типа T, либо те классы, от которых Т наследуюется А в чем разница?
Разница провляется, когда у тебя есть код, оперирующий такими дженериками. Например, два метода:
void eat(List<? extends T> list) { // В этот метод ты можешь передать как лист от T, так и лист от наследников от T, что довольно часто востребованно. Писать в такой лист ты ничего кроме null'ей не сможешь, читая из этого листа, будешь получать T }
void poo(List<? super T> list) { // В этот метод ты сможешь передать как лист от T, так и лист от классов, базовых к T, например List<Object>. Метод сможет писать в такой лист Tэшки, но при попытке прочитать что-то оттуда получишь всегда Objectы. }
Грубо говоря --- <? extends T> это сущность, откуда происходит чтение, <? super T> --- сущность, куда происходит запись, а сами такие дженерики нужны, чтобы работать с конкретными сущностями полиморфно, не привязываясь к конкретным типам в сигнатуре методов. В примере выше, оба метода выше смогут работать, принимая в качестве аргумента List<T>, но каждый из них поддержкой этого типа не ограничен.
>>2400898 (OP) Нужен совет. Изучаю жабу и бд, фронт вообще не знаю. Хочу реализовать страницу, на которой будут элементы/кнопки, при нажатии на которые в поле будут добавляться данные в указанном виде. Так же, чтобы при нажатии на элемент в поле, чтобы он исчезал, а остальные сдвигались на место убранного элемента.
Так же будут кнопки стереть, чтобы убирался с последнего элемента и подтвердить, чтобы выполнить некоторое действие.
На чём это проще всего реализовать? Хватит ли html или нужно что-то ещё. Есть где-то готовые решения?
>>2408071 Судя по задаче тут ни жаба ни бд не нужны. Готовая интерактивность на фронте проще всего через vue. Куча готовых решений через vuetify. Если не хочешь погружаться во все это говно и делать по старинке, то на ванильном жопаскрипте тоже можно. Но в него, как и во все что перечислено, придется вникать от недели и больше. Если во всем этом 0, то с наскока что хочешь сделать не получится. После методичного изучения зёрен и плевел браться за задачу.
>>2408071 Придётся тебе учить JS, там это делается в 10 строчек. Можно сделать и на голом HTML, но придётся очень сильно поебаться. Чистый HTML не умеет в динамику, и если страница загрузилась в каком-то виде, то без перезагрузки ничего не изменить, можно только сгенерировать на сервере через шаблонизаторы изменённую страницу и загрузить её. В твоём случае, например, кнопки для ввода будут элементами формы: <form method="POST"> <button name="button_a">A</button> ... </form> На сервере надо при отправки формы определять, какая из кнопок нажата, и при следующей генерации страницы добавлять эти кнопки в шаблон.
>>2408106 Две стороны одного вонючего говна. Почему вью? Потому что нюфаг его может подключить без ебли с npm, cli, гульпами, бабилонами и прочей залупой усложняющей жизнь - просто через script cdn в одну строчку. Как это делали деды 20 лет назад. Распостраненность и того и другого в проде однохуйственна одинакова.
>>2408112 > нюфаг его может подключить без ебли с npm, cli, гульпами, бабилонами и прочей залупой усложняющей жизнь - просто через script cdn в одну строчку Среакт тоже так можно.
>>2408115 > приложение Клиент-серверное имеешь ввиду? На ведре для клиента своя экосистема. Конечно есть react native, но юзают в основном либо kotlin+android sdk, либо flutter. Про вью тут не скажу.
>>2408132 Будто в обычные потоки все умеют. Да никто не умеет, надеются на фреймворк, который магически возьмёт свободный поток из пулла и будет в нём обрабатывать запрос.
Древние мурзилки Где они? Куда они делись? Существовали ли они вообще? Иногда гуглю инфу по технологиям EE из нулевых типа Axis, EJB, WebSphere и нихуя не нахожу, одни хеллоуворлды без объяснений, сухие джавадоки и книги 15-летней свежести. Они на двадцатой странице гугла? Или просто все сайты уже повыключали из-за низкой посещаемости?
>>2408132 > Откуда следует, что никакого прироста для вычислительных задач не заявляется и не ожидается, а прирост ожадается для задач с большим количеством блокирующего кода. Такой тест, как мне кажется, и стоило включить в статью. Кстати в котлине для cpu cunsume есть отдельный от io consume тредпул. И при спавне корутины это можно явно указать. Но в лума всё спрятали от разраба в черный ящик.
>>2408132 >петушарпер нашел статью на петухабре в которой якобы обсирают джаву и радостно побежал кидать ее в джава тред (даже не читая содержания кроме итогов)
>>2408281 Мне нравится шарп, пишу на нём в свободное время, но работа на нём говно, поэтому вкатился в жабу ради деняк. Исходники пишу в vim, компилирую без студии через C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe, который на любой винде из коробки.
>>2408281 Нет, пишу на спрингбуте синхронные круды с подстгресом. Просто охуеваю, как ораклы ссут в уши. Когда только начинал вкатываться, во время выхода жаба 12, слушал разинув уши, про то как много даст короткий релизный цикл, а вот вам большие проекты, нужно только подождать лтса. А на деле и проекты к лтсам не успевают, да и не то чтобы очень нужны они были. По факту хоть у меня версия и называется жава 17 - почти ничего не изменилось и я сижу на чуть проапгрейженой восьмерке. Не то чтобы мне сахарок прям пиздец как нужен был, но булщит слышать неприятно. Спринг 6 так вообще ничего нового не обещает.
В тот момент когда в джаве начнет появляться что-то фундаментально новое, ровно в этот момент джава и помрет. Вечная обратная соместимость --- вещь, за которую джаву и ценят в энтерпрайзах (равно как и ее проклятье, из-за чего она так туго развивается)
А лум --- в луме назревала нужда слишком давно. Везде уже есть поддержка асинхронщины и зеленых потоков, только в джаве до сих пор нет. Пора бы уже.
Ну и нельзя сказать что с восьмерки джава прям не развивалась. Просто развитие было скорее виртуальной машины, чем языка --- например JPMS, затевавшийся в том числе и с целью подрефачить хотспот под нужды коротких релизов, всякие оптимизации типа новых GC и строк. В сторону AOT было многое сделано, грааль тот же.
>>2408480 Только и аот и эти ваши модули нужны в сущих процентах проектов. Да и если их использовать по настоящему в проде, что от модулей, что от аота по пизде идет обратная совместимость. >>2408469 Альтернативные gs нужны наверно почаще, но тоже в подавляющем меньшинстве и это еще дальше от 90% крудошлепов.
Жду, когда в жабу завезут синтаксис от котлина а лучше шарпа, но без мусора вроде типов после имён, необязательной точки с запятой и того высера с иммутабельными коллекциями и mapped types. Мне похуй на то, что там в кишках JVM.
>>2408504 Вальгаллы само собой. Мне бы это хоть как то облегчило написание крудов. Вот буквально вчера в мокитовский верифай закинул any(), и не запустив закинул в гит. А там anylong нужен был. Не заметил, компилируется же. Недолго провозился, там рантаймэксепшон прямо сказал что не так. Но все равно неприятно.
>>2408511 Подобные топы - разновидность клипового мышления зумерков. В реальности всё куда сложнее. Тебе хочется по пунктам доказать, что конкретные фичи мне на самом деле не нужны, а нихуя так не будет. Просто дай мне в жабу синтаксис шарпа, и я буду доволен, окда?
Зачем тебе в джаве синтаксис шарпа, если есть шарп? Зачем тебе в джаве синтаксис котлина, если есть котлин?
Ты гришь "дай мне фич и я буду доволен", но ты не просишь с уважением, не выдаешь и не обосновываешь свой топ. А мне вот например по умолчанию (пока не обоснованно обратное) нахуй новый языковой сахар конкретно в джаве не вперся --- с ним у анальников будет только больше способов плодить неявные баги, и че? Обнимемся и нахуй вместе пойдем?
Если уж говорить о клиповости мышления зумерков --- зумерки как раз и любят тащить блестяшки как сороки - вечно недовольны синтаксисом, нихуя сделать не могут. Дали те var type inference в 10ке --- радуйся, так нееет, еще какой нить хуйни подавай, чтоб больше больше java puzzlerов потом было.
>>2408517 > Зачем тебе в джаве синтаксис шарпа, если есть шарп? Мне нужен синтаксис шарпа, а не сам шарп. В шарпе охуенный синтаксис, но экосистема - ёбаное говнище. А в жабе наоборот. И экосистема мне представляется важнее синтаксиса. Но хотелось бы бочку мёда без ложки дёгтя. > Обнимемся и нахуй вместе пойдем? У всех разные взгляды на то, каким должен быть язык. Вот.
>>2408519 Минималистичный синтаксис это одна из причин развитости экосистемы. Тулзы писать просто и понятно. В синтаксисе си вообще нихуя нет, его стандарт это короткая книжечка. Но на его уровне у си вообще нет конкурентов, хотя есть и плюсы и расты и ещё миллион никому сейчас не известных убийц сишки было в 80ые.
JVM же перед запуском байткода конвертирует весь байткод в нативные для машины инструкции процессора и загружает их в кэш процессора? Я правильно понимаю?
>>2408537 Интерпретирует байткод как интерпретатор в любом скриптовом языке. Если какой то участок создает грузку, JIT компилирует его в нативные инструкции.
>>2408587 Для этого надо было родиться пораньше, когда эти мурзилки ещё были. А так есть в планах написать подшивалку-архиватор, потому что тот же баелдунг наверняка не вечен, но руки пока не дошли.
> «Skillbox предоставит 100 грантов на обучение двенадцати самым востребованным профессиям образовательной платформы. В их числе “веб-разработчик”, “SMM-специалист”, “Java-разработчик”, “веб-аналитик” и другие», — рассказали в пресс-службе. Уже готовы конкурировать с неоплачиваемым рабочим за УДО?
>>2408758 Найс рофл, этим говном про "готовы конкурировать с зеками" засрали нахуй всю доску, вахаха ебать как же смешно просто бля живот надорву ща, особенно когда одна и та же несмешная шутка повторяется сто раз и обязательно надо в каждый тематический тред с ней заглянуть дщополнительно - ну тогда вообще уровень смеха становится как в "Мистер Смех" Беляева.
>>2408789 >Перегрелся? >Ты шиз? >Ты идиот? Да, да и да. Ответ на любой вопрос, касающийся моей личности - автоматически "да". Вопросы не по моей личности есть?
Поясните зачем нужен вебФлакс? Почему я не могу клиента написать на js, например? Что значит термин реактивный? Я слышал раньше react js это как-то связанно?
>>2408873 Как минимум, пруфануть что этим "засрали нахуй всю доску". Иначе ты бот неудачно перекрытий актуальную информацию. Ах да, вопросы касающиеся твоей личности - автоматически "да".
>>2408880 > Почему я не могу клиента написать на js, например? Вебфлакс - серверная либа, то есть предназначена, чтобы один сервер обращался другому. JS нужен для взаимодействия фронта и бэка, а вебфлакс для взаимодействия двух бэков. > Что значит термин реактивный? Асинхронный. > Я слышал раньше react js это как-то связанно? Вообще никак не связано.
На собесе собираются дать задачи на коллекции (джун без опыта). В чем может быть подвох? Подразумевается знание коллекций, типа знание сложности операции, чем одно эффективнее другого (для большого объема данных). Но ведь по сути arraylist всегда эффективнее линкедлиста, как и хешсеты/мапы эффективнее трисетов/мапов не считая задач где нужна отсортированная коллекция. А остальные коллекции вообще не видел чтобы особо где-то применялись. Параллельность разве может конечно сильно увеличит производительность. В общем что мне стоит ожидать? Я дебил и никогда не задумывался о скорости работы на больших данных, а теперь за них спрашивать хотят.
На самом деле --- "реактивный" это не совсем тупо "асинхронный". Понятие реактивности появилось отсюда: https://www.reactivemanifesto.org/, оно включает в себя асинхронность как вид message-driven подхода к дизайну, но асинхронностью не ограничивается.
>>2409095 Хм, смахивает на отдельный топик для холивара. Мне в вебклиенте нравится одинаковость. вебКлиент.метрд().урл(...).получить().телоВМоно()... В отличие от методФоЧтото у рест темплейта
>>2408886 >Как минимум Т.е. по поводу своего говновброса тебе нечего сказать, ты просто высрал это в десятый раз чисто чтобы потроллить двач, а обсуждать это ты не хочешь? Хочешь только чтобы я тебе что-то делал: >пруфануть что этим "засрали нахуй всю доску". Нет. По крайней мере объём работ, требуемый для этого, уже вышел за пределы бесплатного. Я хз, по каким ключевым словам это искать, это тебе должно быть виднее, ты и подскажи.
>>2409009 >ведь по сути arraylist всегда эффективнее линкедлиста Нет. Всякие вставки в середину, в начало, удаление работают за O(1), когда как в ArrayList за O(N).
>>2409009 >А остальные коллекции вообще не видел чтобы особо где-то применялись. >Параллельность разве может конечно сильно увеличит производительность.
Ну вот многопоточные коллекции повторить стоить, их внутреннее устройство, какие с использованием блокировок написаны, а какие - Lock Free, итд.
>>2409130 > ты просто высрал это в десятый раз Что именно? Если ты про пруф, который ты не можешь дать, то вся твоя аргументация останется твоей личной фантазией непонятно для чего придуманной и непонятно для чего отстаиваемой. > обсуждать это ты не хочешь Хочу, для этого она и вкинулась. А вот то что ты не хочешь это понятно еще по первому посту. Но для чего тогда продолжаешь этот диалог? Сиди молча и не шитпости. Если конечно твой умысел именно не в том, чтобы защитпостить эту новость.
Просто если посмотреть на эту ветку, то какого то шиза преследуют зеки по всей доске, хотя ни одного поста (кроме этого) с этой новостью на доске нет. И обратное он доказать не в состоянии. Потому что логика. Потому что факты.
> Я хз, по каким ключевым словам это искать Ну вот же твои слова > этим говном про "готовы конкурировать с зеками" Если "вся доска этим засрана", то особого труда для тебя это не должно составить.
Но как оказалось несуществующие вещи найти не так просто.
Зайдя в ideю, поздоровайся. На время выбрось из головы все мурзилки, которые знал. Если кодить не получается, выбирай самые безобидные таски для завершения. Никогда никому ничего не подноси и не создавай объекты по личной инициативе. ... Не бери ничего чужого, кроме кода с стековерфлоу Будь чистоплотен.
>>2409261 Я не сомневался в твоих интеллектуальных способностях. А ну ка песик, придумай новую отмазку почему у тебя нет пруфов к > этим говном про "готовы конкурировать с зеками"засрали нахуй всю доску
Асинхронность это просто когда есть колбек-потребитель, куда тебе приходит результат работы некоторой ботвы-отправителя. По классике, если потребитель сообщения по какой то причине заблокируется (всяко бывает, че), вслед за ним заблокируется и отправитель (или откажет, в зависимости от реализации асинхроньщины).
Реактивность --- это как минимум асинхронность + backpressure == реактивные стримы. Если без выебонов, backpressure это когда сам потребитель событий может сказать отправителю --- "мне харош, отправь мне 5 сообщений и больше ненада, я не голодный". В итоге отправитель не эмиттит сообщений больше, чем по факту сможет обработать получатель, то есть не дудосит получателя работой настолько, что оный отказывает. Раз получатель не отказывает, не отказывает и отправитель.
Но на самом деле вся история про реактивность --- это история про построение устойчивых систем, которые способны адекватно реагировать на нагрузку --- не уходить в отказ или лютые тормоза, а как минимум ответить, а лучше вообще адаптироваться под текущую нагрузку на лету. Реактивные стримы из примера выше --- это лишь инструмент для построения реактивных систем, но он не единственен. Как пример, есть еще паттерн curcuit-breaker, с несколькими реализациями. Многие вещи общего назначения, типа кафки, мессаг-брокеров, микросервисов или горизонтального масштабирования рассматриваются как средства для построения реактивных систем. Реактивщина --- скорее философия, нежели конкретный тул.
>>2408880 Раз про реактивность сказано рядом с js то стоит упомянуть, что на фронте под реактивностью понимается не тоже самое что на бэке. На фронте реактивность это возможность изменять состояние js объекта, чтобы эти изменения автоматически обновляли связанное с ним html говно без твоего участия. По сути просто навороченный observer.
Да так то можно и параллели между фронтом и бэком провести. Прямой апдейт странички по каждому событию благополучно кладет страничку, когда событий на страничке становится много. Реактивность позволяет батчить эвенты, и апдейтить страничку фиксированное количество раз в секунду. Отзывчивая страничка есть такая же цель реактивности, как и отзывчивый API.
Помогите вкатуну. Коннекшен к базе данных надо закрывать, или можно чтобы он висел один на все время работы программы? То, что стейтмент закрывать надо я знаю, а коннекшен?
>>2409491 > можно чтобы он висел один на все время работы программы Нужно. Устанавливать новое соединение каждый раз слишком дорого, и стараются, чтобы он висел как можно дольше. Во всяких спрингах и EE для этого достаточно сконфигурировать один раз датасорс.
Потому и работает, что там не <? extends Object>. Если б был <? extends Object>, то не работало бы.
Ты просто пойми разницу между двумя типами, и отделяй тип переменную от типа ее значения/присвоения. Если у тебя переменная типа List<Object>, то значение этой переменной всегда будет лист элементов типа объект. Что означает что ты можешь добавлять в этот лист объекты и это не будет противоречие с точки зрения системы типов.
Но если у тебя переменная типа List<? extends Object>, значением этой переменной могут быть как List<Object>, так и List<Integer>, или List<String>, List<Xyi> --- вообще любой лист с элементами-наследниками Object. Писать в такой лист обжекты ты уже не можешь, потому что ты не можешь по такому типу переменной знать, что там конкретно за лист-значение. Ты сделаешь list.add(3), а на самом деле там List<String> все это время был присвоен --- и все: у тебя в список строк просочился интежер, хуйня какая то получилась. Замени в своем примере первую строку на `List<? extends Object> list = new ArrayList<String>();` и все станет ясно.
Но зато читать из List<? extends T> ты будешь гарантированно T, вне зависимости от того, какой конкретно там тип T. Полиморфизм.
>>2409615 Мы вот сейчас вынуждены учить всю эту галиматью только из того, что изначально разработчикам джавы лень было добавить шаблоны из С++. На уровне байт-кода тоже нет ни каких обобщений. Вся эта хрень только на уровне компилятора.
>>2409185 >Нет. Всякие вставки в середину, в начало, удаление работают за O(1), когда как в ArrayList за O(N).
Но в середину не работает за O(N). Ведь надо же еще элемент найти, это отдельная операция. Получается в среднем пососал
>Ну вот многопоточные коллекции повторить стоить, их внутреннее устройство, какие с использованием блокировок написаны, а какие - Lock Free, итд.
Бля, вообще не ебу, знаю что существует, что можно как-то отдавать на работу эксекьюторсервису, не больше. Почему-то всегда хуй клал на изучение многопоточности. видимо придется соснуть теперь
Не повезло челу. Наверное какая то наебка от самоутверждающихся анальников на собесе -- подкинули какой нить паззлер. Хуй его знат че это за repo и кидает ли оно по факту эксепшон. Если эксепшен кидается и нигде не перехватывается, транзакшон откатится, и принтлн не выведется. Веб сервер не дропнется и продолжит работу, если это подразумевалось.
>If no custom rollback rules are configured in this annotation, the transaction will roll back on RuntimeException and Error but not on checked exceptions.
То есть, как будто бы получается, что checked exception на месте рантаймового эксепшона транзакцию б не откатил бы.
>>2410371 Не он тебя тупым назвал, а я. Ты тупое дегенеративное хуйло, потому что должен был правильно задавать вопрос, а не дублировать тупорылый вопрос от собеседующего.
>>2410434 Твоя мамаша тупое дегенеративное хуйло, которая не научила в общение с людьми. Наверняка у тебя сальные волосы, рюкзак и маленький хуй из-за которого ты комплексуешь. А по факту ты и есть тупой, потому что код продолжит выполнение
>>2410304 Такие шарады решаются не детальным разбором кода, а навыками общения с собеседующими. Предполагается, что кандидат должен задать вопросы на уточнение, что здесь имелось в виду и через их подсказки дать ответ. Проверяется не знание джавы, а умение общаться.
Что-то меня пиздец угнетает что этот язык ты будешь использовать только для работы и ничего больше. То есть, буквально учить ради денег, что не хорошо.
>>2411848 >>учатся 4-6 лет Чтоб код писать не нужно знать историю России, черчение, маркетинг и тонны матана. Там полезных кодомакаке предметов от силы процентов 10-15, с учетом всяких бд и скл, которые не сильно изменились за 30 лет
>>2412151 Вроде, была в рамках основного курса истории. Хуй знает, я проебал почти все лекции по этой блядской истории, экзамен сдавал по выученным за ночь билетам. >>2412159 Я уже после поступления узнал, что так можно было. Ради интереса потом посмотрел учебные планы нескольких других "программистских" специальностей, на которые проходил по баллам, везде был "гуманитарный блок" в том или ином виде.
>>2412119 Техническое ВО даёт общую базу, математику которая прокачивает мозг, навыки работы с информацией, более лёгкое трудоустройство и формирует твой круг общения.
Сука, какого хуя нельзя было сделать нормальные дженерики, без стирания? Я не понимаю, как отсутствие стирания бы сломало старый код, ведь возможность писать сырые типы осталась!
>>2408511 >и шарпа. 1. Авто-свойства 2. Свойства с init (хотя это может быть и есть, хз) 3. Человеческий синтаксис 4. Async/await 5. Linq 6. Generic math + abstract interface member 7. Ебаные структуры наконец-то а не только классы и рекорды
>>2412347 > 1. Авто-свойства > 2. Свойства с init (хотя это может быть и есть, хз) Есть ебучий ломбок > 3. Человеческий синтаксис Его и в шарпе нет. > 4. Async/await ExecutorService > 5. Linq Стримы > 6. Generic math + abstract interface member Никому не нужно. > 7. Ебаные структуры наконец-то а не только классы и рекорды Рекорды и тот же лобок.
>>2412347 >1. Авто-свойства Ты про геттеры? Так у нас лобок есть. >2. Свойства с init (хотя это может быть и есть, хз) Ты щас сам себя и свою ассемблеропарашную хуиту обосрал, лол. >3. Человеческий синтаксис Который является калькой с джавы, ага. >4. Async/await Дрисня, мешающая разработке. >5. Linq Hibernate. На ассемблеропарашной хуите до сих пор скл запросы пишут? >6. Generic math + abstract interface member Гордится статиками? Ты превзошел в тупости всех петушарперов сразу. >7. Ебаные структуры наконец-то а не только классы и рекорды Чем отличаются от рекордов, кроме того что их писать медленнее?
>Это вот тока то, что я вспомнил. Больше ничего и нету. Вот и получилось, что петушарп эта та же джава, но без уймы важных фич и самое главное библиотек и фреймворков, но зато с кучей бесполезного ассемблеропарашного говна.
А теперь скажи мне, где у тебя: - Javadoc - Project Loom - Возможность писать код на линуксе - GraalVM - Настоящий хибернейт, а не калька с джавовского хибера, не обновлявшаяся с 18 года
>>2412363 Не смей упоминать ломбоки все знают что чтобы не обдристаться в жавашарп сраче надо усиленно игнорировать экосистему жавы и учитывать только язык и стандартную либу.
>>2412363 >Есть ебучий ломбок Ок. >Его и в шарпе нет. Есть. >ExecutorService Очередная попытка в асинхронность как шарпе но вместо того чтобы в открытую взять полезную фичу которую взяли популярные языки. >Стримы Подробнее. >Никому не нужно Крудошлеп не палится. >Рекорды и тот же лобок Рекорды это вообще не структуры, даже близко
>>2412388 >подробнее Погоди погоди, так у вас в петушарпе еще кроме
>А теперь скажи мне, где у тебя: >- Javadoc >- Project Loom >- Возможность писать код на линуксе >- GraalVM >- Настоящий хибернейт, а не калька с джавовского хибера, не обновлявшаяся с 18 года
Еще и стримов нет? Пиздец, насколько надо быть копрофагом, чтобы на этой параше писать.
>>2412367 >Ты щас сам себя и свою ассемблеропарашную хуиту обосрал, лол. Что ты несешь, шизло? Я сказал "хотя это может быть и есть уже в ДЖАВЕ). Я не в курсе есть ли у вас init свойства. >Человеческий синтаксис Как там каждый раз два метода вручную писать? Как там постоянно писать @override сверху метода, по сути эквивалент всратому синтаксису $ из пыхи. >Hibernate. На ассемблеропарашной хуите до сих пор скл запросы пишут? У тебя мозг расплавился? Что ты вообще несешь? Причем тут sql запросы и ассемблер? >Гордится статиками? Даже не могу твое ебало ирл представить. В курсе, что некоторые классы могут иметь часть статик методов и часть не статик методов. >Чем отличаются от рекордов, кроме того что их писать медленнее? Чем их медленнее писать, шизло?
>- Javadoc Есть, в C# коде можно писать разметку, например <summary>, а затем захуярить в один большой документ. >- Project Loom Проиграл. Какая-то попытка в таски из C# и concurrency либу из шарпа. >- Возможность писать код на линуксе Зачем? Линукс юзают для серверов, для остального есть винда и мак. Да и .NET 6 стал полностью кроссплатформенным >- GraalVM Обосрался в голос. Сделали очередную виртуалку которая компилит разные ЯП. Не поверишь, но любой яп поддерживающий msil будет запускаться в платформе .NET которая существует с 00-х годов, а твой граалвм вышел в 2019, задумайся долбоёб. >- Настоящий хибернейт, а не калька с джавовского хибера, не обновлявшаяся с 18 года EfCore, супер ахуенная ORM поддерживающая любые манипуляции с SQL бд, максимально ООПшная. Если нужна бОльшая производительность - Dapper, где ООП чуть поменьше, но зато быстрее. Нужно MongoDb? Юзаем оф. решение от монго для C# которая очень похожа на EfCore. И прикол в том, что везде используется один интерфейс IQueryable транслирующий все твои Linq запросы в запрос в базу данных.
>>2412409 >Как там каждый раз два метода вручную писать? Как там постоянно писать @override сверху метода, по сути эквивалент всратому синтаксису $ из пыхи. ахахаххах блядь ну ты и еблан нах ты споришь с тем в чем не разбираешься?
>>2412413 >ахахаххах блядь ну ты и еблан >нах ты споришь с тем в чем не разбираешься? Я чекал дохуя джава кода и он выглядит просто мерзко. Он некрасивый. Синтаксис ужасный и похожий на рыготину с++, пхп и какого-нибудь питона. Нагородили много лишней хуйни которая только замедляет написание кода потому что тебе нужно каждый раз ебаться с конченым синтаксисом, который ты через 3 месяца уже не будешь понимать. Я вот что-то через полгода вернулся к проекту и вполне неплохо понимал что там происходит, хотя даже большую часть писал не я. Задумайся, пизда ты тупая
>>2412409 Грааль вм это не только про поддержку кучи разных языков, это самое бесполезное что в ней есть. Грааль вм это буквально некст ген виртуалка, она твой новенький кор нет обошла на лет 20 в развитии, хотя вышла раньше него.
>>2412545 >>писать на языке в котором по стандарту интерфейсы называются с буквой I в начале >>визжать о некрасивом синтаксисе Да. А еще у нас скобочки ебаные ставят с новой строки. А еще есть конвенция. Когда вижу:
public void Method(){
} То сразу хочется ебальник снести тому долбоёбу который так пишет
>>гордиться тем, что код на его языке можно прочитать >Дичайше проиграл в голосяндищу. Хоть 1 причину назови почему читаемость кода это не является плюсом?
>>2412571 Хоть 1 обоснованный аргумент будет, а не "унаслудше". Чем лучше?
Выбираю между js и java. Цель - вкатиться в айти за год на удаленочку. Матан знаю оч хуево. Что проще? Прям тянет изучать именно джаву, но проебать этот год я не могу
>>2412409 >Я не в курсе есть ли у вас Дальше не читал. Здесь не бесплатные курсы по языку, хочешь чтобы тебя чему-то научили - будь добр хотя бы гонор поумерить.
>>2412592 js. удаленка на тырпрайз языке очень редка, а если и будет то почти гарантировано будет совместно с посещением офиса раз в неделю-две т.к надо будет постоянно обкашливать вопросики с сеньером и пм. Учи nodejs, react или че там модно, короче самые самые модные на 2022 год и спустя год активно обучения, а не скроллинга двачей то вполне можешь вкатиться сначала на 50к+ где-нибудь в офисе, а спустя годик работы можно на удаленку. Просто прими тот факт, что на удаленку берут только тех спецов которые могут сами во всем разобраться без помощи сеньера, чего ты конечно же после года самообучения не сможешь сделать и поэтому тебе просто придется год-два терпеть.
>>2412593 >Дальше не читал. Здесь не бесплатные курсы по языку, хочешь чтобы тебя чему-то научили - будь добр хотя бы гонор поумерить. Да похуй мне на ваш Java, я уже вкатился в C# и доволен как слон. Мне просто нравится спорить о вкусах да и попиздеть просто так, в реале-то не с кем.
>>2412762 Так тут оракл все в рот ебали. Все хорошее в жабу было сделано или запланированно при сане, которые даже разлождившись на липовый мед сделали много полезного. Если уж фажить по каким-нибудь жидам, то из жидбрейнс или пивотал. По поводу шарпа. Открываем табличку и видим проекты на жабе, питоне, жсе, расте, конечно же на си и плюсах. https://habr.com/ru/company/selectel/blog/532680/ И 0, ноль блядь на шарпе. Ноооль. Шарп это не конкурент жабы. Это проприетарное говно, вроде свифта. И даже попенсорсность нихуя не поменяла, до сих пор почти всю экосистему пилят майки.
>>2412801 Хммм даже блять не знаю почему для шарпа меньше проектов! В дотнете все для разработки идет из коробки от мелкомягких, а не бесконечные мавены, градлы, анты, томкаты, нетти, гласфиши, жексоны, гуавы, ломбоки прочий мусор для крудошлепства, часть из которого остановилась в развитии на 8 версии
>>2412866 Так коробочность шарпа это не фича, а говно. Из-за этого шарп и остается майковской игрушкой несмотря на попенсорс. На жабе у каждой крупной компании есть свои попенсорс проекты от хадупа или кафки до хибера, эврики или собственной жвм. Плюс есть куча компаний, которые живут на жвм-продуктах. Жидбрейнс, пивотал, эластик. И зоопарк это не минус, а показатель конкурентности и возможность выбора. Есть задачи, где нужен грудел, а есть где и без него збс. В большинстве проектов нахуй не нужна нетти, хватает и томката. А тут и сервлеты уже есть асинхронные. Взлетят - хорошо, не взлетят - сдохнут и хуй с ними. А вам, долбоебам, приходится жрать весь кал, который дают с лопаты майки.
>>2412993 Так тебе, мань >Задроченного омежку петушарпера любой джавист одним мизинцем запиздит, лол. Представляю твое ебало грязное индусское, как ты своими немытыми руками по засранной клаве хуячишь со злостью потому что я в очередной раз дал пососать джава чмонькам в их же треде.
>>2413043 Если сам без гуглежа ответов этот курс прошел, то неплохие шансы быстро дойти до сотыги. Задания там несложные, но поставлены коряво. Я только на 90% прошел в свое время. Теперь нужно только git, jdbc, spring(core, boot, web-mvc, test). Ну и желательно docker, spring-data, swagger.
>>2413043 Лучше курсы Трегулова. Там всё куда понятнее.
Меня в моей мухосрани недавно взяли только на 30к недотестером. Сижу смотрю/читаю мануалы по продукту, потом постмен/робо 3т. Зато вкат ненапряжный(джве+ недели), так как весь отдел такие же новички. И коллектив вроде норм. Буду постепенно автотесты изучать, как чуть освоюсь.
>>2413748 То есть 26к вкатутось на 1.3к рубчиков. Это он минимум 3кк(минус комиссия) на вкатутосях заработал. Это с условием, что брали по одному курсу и без скидки никто не брал. Года за три.
>>2413781 >и без скидки никто не брал Там всегда скидки, я вообще за 890 рублей покупал после того, как спиратил, поскольку очень годно объясняет. Я у него два курса купил, ещё два так и остались спираченными. И курс этот года с 2015, но он его обновлял.
Поясните плиз за нынешний рынок айти в Рашке? Я сам почти 27летний вкатуноид с баманкой за плечами. Отработал 5 лет инженегром по динамике гтд, хочу выкатиться в айтишечку. Жаба петуханом в банк какой-нить. Каковы мои шансы на успех? Планирую сразу на миддла попробовать. Из опыта 4 года пистона и матлаба.
>>2414009 На мидла не реально. Только в совсем говноконтору. Не бывает таких петов, чтобы ты на них на джава стеке на мидла вкачался. Но если типа умный можешь пройти в банк сразу за год задротства. Там вроде все джуновские вакансии позакрывали. И стажировки тоже. Но может если будешь сильно долбить мидловские вакансии и тебя позовут на собес - то возьмут на трейни+(любой вкатун это не джун, но может стать джуном за время онбординга) через мидловскую вакансию. В тиньке вон алгоритмическими задачками правда пропускают. И вряд-ли ты сможешь за год подготовиться и к языку с фреймворка и к алгосам. Ну и в большой компании тебе лычку мидла в первые полгода тоже не дадут. Разве что через полгода опыта, как только пощупаешь проект сразу идти в другой банк и обманывая насчёт опыта пробиваться на мидла на 2 сотыги.
>>2414017 >windows >программирование И типо мне есть смысл дальше рассматривать код в видео и пояснять, что не так? Шаг 1 - ставь fedora, ubuntu или opensuse linux
>>2414141 У нас в маленькой галере на 10 жавистов половина сидит на убунте, половина на Винде+всл. Проблем из-за этого не было. Все дев окружение в докер или на девсерверах. Клиент для ssl у меня на Винде есть. Админы поставили всем Винду, кто захотел переставил и сам потом весь корпоративный софт ставил. Мне лень было. Если убедишь, то тоже могу накатить убунту в следующем месяце.
>>2414196 В убунте убогий Gnome стоит, который затачивают под макось и кладут болт на удобство и наглядность в угоду дизайнерским заскокам разработчиков. В итоге там здоровенные иконки в полмонитора с маленькими надписями, которые ещё и не отображаются целиком. Так что если и ставить линупс, то только на базе KDE. Там и гибкость настроек и куча плагинов. Да и просто приятный визуальный стиль, который можно дополнительно ещё настроить под себя.
>>2414232 Ахахах прыщебляди сами придумали себе проблемы и теперь их героически решают, когда на нормальной операционной системе можно просто скачать установщик нужной версии с официального сайта.
>>2414017 1.Не доставточно оопшно - 18-20 и 22-24 код повторяется. Сделай отдельный метод который принимает String[] и возвращает рандомное слово из него. 2.Для целых чисел обычно используют java.util.Random/SecureRandom или java.util.concurent.ThreadLocalRandom.current().nextInt() а не java.lang.Math.random(). 3. Лучше все не константами хранить, а читать из текстового файла. Можно при запуске приложения считывать из файла в лист/массив. позволит не пересобирать проект, а просто поменять файл/конфиг научишься IO пользоваться 4. List удобнее массива в большинстве случаев. Особенно когда до стримов дойдешь. 5. не слушай долбоеба >>2414123 . Джава платформонезависима. Линукс не стоит потраченных усилий на вкате. Но консоль все же поставь - например с гитом идет в комплекте, ее(bash) можно в идее включить в настройках вместо cmd.
>>2414334 Если не будешь их нигде применять (читай решать медиум-хард задачки на литкоде), можешь действительно читнуть 1 книжку, грокаем алгоритмы, и пойти дальше зубрить аннотации спринга, это всяко полезнее.
>>2414614 >Spring Framework 6 and Spring Boot 3 based applications will require a minimum of JDK 17 at runtime, as well as a minimum of Tomcat 10 / Jetty 11 (for Jakarta EE 9 compatibility).
>>2414662 Прям как jdk да. Не понимаю лицензию, так понял для прода он платный https://www.oracle.com/java/graalvm/ Но ведь оракл съебал из рашки и навреое можно забить. Как задетектят, что грааль использовали для приложения? Никак
Так спринг в какой то мере уже использует Java EE. К примеру, под капотом по умолчанию в спринге --- Томкат, а Томкат --- референс-имплементация сервлетов, которые в свою очередь --- часть --- часть web-профайла Java EE. Кроме того, никто не мешает на спринге юзать JPA и Jax-RS --- а они тоже спеки из Java EE.
Умерло не столько Java EE, сколько идея все-в-одном-контейнеров, которые целиком и полностью мэнеджат ресурсы приложения в себе. Время показало, что такая схема недостаточно гибкая и адаптируемая. Часть стандартов, вроде JSP, JSF, EJB или JAX-WS легасизировались либо из-за устаревания, либо из-за изначальной неудачности идеи, но другая часть живет и здравствует по сей день.
Часто ли вы используете кастомные ивенты и листенеры для них в спринге? Появилась идея уменьшить количество зависимостей между сервисами, поменяв прямые вызовы методов на паблиш ивентов. Хорошая идея или нет?
>>2414734 > уменьшить количество зависимостей между сервисами, поменяв прямые вызовы методов на паблиш ивентов. Удачи потом это дебажить, а остальным разбираться в этом волшебстве.
>>2414734 Можешь попробовать. По сути , ивент лисенер - обсервер, который не надо самому собирать. Ну и если ты не хочешь быть прибитым гвоздями к спрингу, лучше пбалишер и лисенер вынести куда-то отдельно
Подскажите, существуют ли на гитхабе примеры проектов на спринге, которые похожи на то, что ковыряют рядовые джуны/миддлы в рядовых конторах? Сколько ни искал видел одни пет клиники с богатой доменной моделью в 5 классов
>>2414844 Джуны/миддлы ковыряют ровно то же, что сеньоры. Примеров там нет, никто не будет писать 500к строк кода ради примера. Реальных проектов там тоже нет, они не нужны ником, кроме одной конторы, да и NDA.
>>2414844 У меня в микросервисе доменная модель будет сущностей на 7-8. И в остальных так же. Максимум в одном 15. Всего сервисов штук 15 будет. Итого получается около 100, из которых прям уникальных штук 30, остальное частичные копии. А до этого был на монолите и там тоже самое, просто это не микросервисы, а подмодули мавена. Ну из тоже было штук 20 и по 5-10 штук сущностей и у них уникальности немного больше. Нигде таких проектов в открытом доступе не видел. Там обычно большая часть логики это интеграция с внешними сервисами.
>>2415639 > Меня скоро будут дрочить на собесе. Что подрочить мне чтобы не обосраться? Членик в рот аноньчика с трэдье Ты же настоящий программист? А не нёрд или тестировщик обоссаный?
Сап анончики, а как можно в майнкрафте включить дебаг-режим для модов например? Я тут тестирую одну хуйню и мне он очень нужен. Есть ли у вас IDE с точками остановки? Я джаву не знаю, но синтаксис понимаю и в целом что происходит, но не хватает дебага.
>>2417299 Врёти. Майнкрафт как и моды написаны на джаве, а значит это можно отлаживать в дебаг режиме. У меня 1.7.10 супер старая версия, не играю на новых
Это нормально, что я могу писать простые приложения на спринге(круд, рест), но при этом задачи из литкоды для меня пиздец сложны? вот я немного покопался в вебе, и у меня вопрос, нахуя люди так люто изучают джава кор смешивая их с ебейшими задачками на алгоритмы, если в спринге/вебе важны именно знания технологий и паттернов, а не твоя логическая дрочка с достань из массива такую хуйню какую я скажу, а потом отсортируй хуе-моё. В чем я не прав? в джаве около 120 часов.
>>2419277 Да прав наверно по поводу алгоритмов. Для крудошлепства на джаве, где все уже написано умными людьми - по алгосам нужно знать общие принципы, какие алгосы на каких структурах бывают, какая у них сложность по времени/памяти и в каких внутренних/внешних библиотеках они лежат(хотя даже это тебе понадобится в 5% случаев, чаще всего никого выбора алгортма не нужно будет). Самому вертеть деревья это дроч. Но дрочь с заделом на то, что если сам сможешь покрутить, значит сможешь понять что использовать среди написанных инструментов. С другой стороны по алгосам ебут чаще большие продуктовые компании, а аутсорсы даже большие нет. Возможно потому, что большие компании думают, что возможно ты не просто круды писать будешь, а еще и инструменты какие-то, а там алгосы нужнее.