Это копия, сохраненная 14 января 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
>>2511475
20 звезд? Без сслыки на мавен? Это че за хуйня?
https://stackoverflow.com/questions/31059325/json-templating-in-java
На вопрос ответьте.
Тебе там с 2015го года все разъяснили, хули те еще надо?
Не используется.
Я в общем уже додумался, надо выдернуть ту хуйню, которой спринг конфиги грузит и парсит.
У вас одна из таких контор, где лид запрещает использовать rabbitmq, kafka и прочие библиотеки с фреймворками, потому что "нет, мы не будем это использовать, я решил)))) просто напиши очередь поверх базы и там просто дергай запросами))))))"?
Грасеас? Грасеас, это ты?!
Спасибо, за последние 3 треда понял, что я не так уж и плох.
🤡🤡🤡
Средствами java.
Вы во время собеса переход вообще не обговаривали чтоли? Или ты напиздел что без работы сидишь? Две недели на старом месте отработать --- стандартная практика так то, и офферодатель, если он серьезен, отдает себе в этом отчет.
Второе.
Просто говоришь из корня проекта `mvn wrapper:wrapper` и закидываешь в гит все, что насоздается.
Ты определись для начала --- для кого ты ридми пишешь. Если для разрабов, которые будут с тобой продукт девелопить, то им ты опишешь как и к какому репу им в settings.xml креденшелы прописывать. Если для пользователей, то камон --- ты че, серьезно хочешь бедняжек заставлять билдить софтину с нуля? Пощади, чай не все родились гентушниками. Чай собери им софтинку в пакетик то, и пакетиком поставляй. Хоть бы спрринг бут мавен плагином упакуй все зависимости в один джарник.
Ну а если ты серьезен в своих намерениях, и хочешь чтобы читатели твоей ридмишки билдили твою пепяку через мавен, то ты впоролся. И проблема вообще не в мавене.
А может быть такой вариант, что меня сразу отпустит нынешний кабан без всякой отработки? Или это прям обязательно? Я ведь даже ни на каком проекте не состою. Кабан тупо мне за 2 недели заплатит за то, что я буду сидеть на скамейке запасных
Я канеш не юрист, так что анон если че поправит, но вроде как двухнедельный срок регламентирован ТК: http://www.consultant.ru/document/cons_doc_LAW_34683/aed7d03df679e3376974dadd131b899dc6966650/
У кабана скорее всего от твоей инициативы пригорит даже если у него на тебя рабочих планов нет. Ему со своей стороны тоже ряд процедур нужно сделать, а ты ему фактически срезаешь срок с двух недель до нуля.
POST семантически ничего не создаёт, он просто запускает некий серверный обработчик. Обработчик может хоть выполнять поиск, хоть сохранять данные. Его используют для любых действий, не вписывающихся в концепцию круда.
Вот PUT да, должен создавать ресурс.
В тз впринципе не сказано , что я должен использовать гет. Я так просто предположил , но раз ты говоришь что мое предположение не верно я забью хуй и напишу POST. Спасибо
Аж сердечко от радости сжимается!
А почему вам только сейчас понадобилось переходить с версии 2015 года на версию 2016?
Да там какая-то залупа для конфигурации EJB есть только для 4.3, раньше была не нужна, а сейчас понадобилась.
Да вообще пиздец.
Я вот с бута 2.7.3 в январе-феврале на 3 с 6 спрингом буду переходить. Думаю должно все бесшовно пройти. На жабу 17 я месяца 3 назад перешел.
Но там микросервис в 10к строчек, который я на 2/3 переписываю уже 3 раз.
Не сидели бы мы на этом говне мамонта, будь у нас микросервис в 10к строчек, а не монолит на 1.5кк.
Если бы не желание тимлида поэкспериментировать с носикульными базами и я переписывал бы сервис только из-за изменения требования бизнеса - там было бы сильно больше функционала и уже не 10к строчек, а 15к минимум.
Ну у нас +- 20 сервисов и вместе наверно 150к строчек. Но до релиза еще полгода и на релизе будет ну 250-300 минимум.
А твои полтора 1.5кк это через сколько после выхода в прод?
P.S. - Средствами JAVA ! ! ! Можно и библиотекой воспользоватся.
RST не имеет отношения к HTTP. Тебе надо закрыть HTTP-соединение? При использовании HttpURLConnection просто выключи keep-alive:
System.setProperty("http.keepAlive","false");
Или тебе надо закрыть обычный сокет с сообщением RST? Тогда делай так:
socket.setLinger(true,0);
socket.close();
Перекатили после тысячи постов, шизика с 19 жабой нет, только аниме в шапке не хватает. Чем не легитимный?
Подозреваю, что перекатывал модер, предыдущий тред удалили сразу после переката.
Как будто что-то плохое.
Вот тут прямо повторяют обсуждение того, что говорит обсуждалось тут тредов 5 назад - о том, что спринг заставляет писать процедурный код и не дает пользоваться половиной принципов солида.
Но вывод не как у Егорки, который говорит, что надо все переписать, чтобы соответсвовало святой ооп идеологии. А что нужно смириться и пытаться не совсем уж говнокодить и тестить все и вся.
Надеюсь, что кто-нибудь дойдет до того, что ооп и солид это просто забавные идеи на которые можно опираться, чтобы опираться хоть на что-то, но во многих конкретных случаях на них абсолютно целесообразно положить хуй.
Да можно юзать и ООП, достаточно применять Active record, объединив сервисы, репозитории и сущности в один класс, но придётся каждый раз туда прокидывать датасорс и другие зависимости, которые нельзя создавать на каждый пук.
>смириться и пытаться не совсем уж говнокодить и тестить все и вся.
>ооп и солид это просто забавные идеи на которые можно опираться, чтобы опираться хоть на что-то, но во многих конкретных случаях на них абсолютно целесообразно положить хуй.
Не все так просто.
С одной стороны, я согласен с твоим выводом, анон, что переписать все на православный ООП --- мертворожденная идея. Взять тот же cactoos --- реальных проблем он не решает никаких, местами противоречит выводам самого же Егора, и внутри устроен крайне посредственно (зато на баэлдунге засветился, лол, вы только чекните: https://www.baeldung.com/java-cactoos ).
С другой стороны, я не согласен с тобой, анон, насчет того, что нужно смириться, и чего то там пытаться. Точнее, как бы это сказать... В текущей ситуации мало сказать "пытайтесь", потому что "как пытаться то блеать, вилкой чтоли"? Сказать "смириться", это как ничего не сказать. Это как пиздеть пустопорошнюю чушь о том, что код должен быть читабелен, (читабельность --- полностью субьективная и эмоциональная тема, никакого конструктива на основе читабельности построить невозможно).
А уж что касается ооп и солид, то это полный пиздец. В интернете регулярно выходят кучи блогпостов с переосмыслением солида, и такие же кучи с его низвержением и разоблачением. Читаешь их и охуеваешь --- чем эти люди мыслят, че несут блять, нахуя дышат вообще...
Короче, вся проблема в том, что дискус вокруг поддерживаемости софта засран эмоциями настолько, что сохранившие там рассудок предпочитают никогда больше не связываться с этой темой. Но проблемы от этого никуда не уходят. Для себя я пришел к определенным выводам по теме, но наверное здесь они никому не будут интересны, и это долгая история.
>>12487
Ну и в продолжение.
Бугаенку конечно можно за многое ругать, но ИМХО факт его появления в публичном пространстве довольно репрезентативен. Сейчас он забанен на всех конференциях, но 2015-2017х годах он выступал много, ярко, и регулярно собирал полные залы народу. Хуй знат зачем они все шли --- может за лулзами, может --- за тем чтоб очко горело, но я склоняюсь к тому, что ходили на него потому, что нуждались в простых и тривиальных правилах, следуя которым можно держать техдолг под контролем. Не за пустопорожними размышлениями о солиде, не за очередным пучком паттернов, сахарком или фреймворком которые все равно не работают в перспективе, а за простым блять ответом --- как кодить так, чтобы через месяц-другой не кринжевать от собственного кода. И он давал простые правила. Они конечно тоже оказались нерабочими, но в то же время были четкими, резкими, не допускающими двусмысленнность.
И любопытный факт: на самом деле отменили Егора вообще не по причине всратости его элегантных обьектов, вот даже не близко. (на самом деле --- потому что он залез в SWJшный и околополитический дискус: после драмы в backendsecret его начали жрать анальники с твиттера, а окончательно добили Барух с ПК jug.ru, когда тот с ними посрался)
>к определенным выводам по теме, но наверное здесь они никому не будут интересны
нет, я вбросил именно потому что мне интересны подобные мнения анонов.
С выводами челиков из видосов я не очень согласен.
Например тдд. Я не особо опытный, но спрашивал на созвонах у нескольких десятков опытных товарищей про тдд. Только один писал что вообще пытался писать по тдд, но быстро забил. Искал, как писать тдд на спринге. Статей мало и там мало практических хинтов, видно что автор скорее всего в прод так не пишет на постоянку.
И что приватных методов в сервисах быть не должно. Вместо 6 приватных методов создать еще 2 сервиса по 3 метода, которые больше нигде не будут использоваться? И на все написать полный набор тестов.
И про то, что надо тестировать применение фреймворков. А сколько тестов надо богу тестов? Вот чисто про разработческие тесты. Ну вот пишем мы эндпоинт. Там есть кастомная валидация, есть какая-то логика на 7 коротких методов на уровне сервиса, есть поход во внешний сервис, есть пукание в кафку, есть 3 запроса в базу. Ну и смотрим на все юниты нам надо по 3-4 юзкейса, и на весь эндпоинт - интеграционный уровня сервиса десяток. В итоге на один эндпоинт нужно 55 тестов. И вот ты их написал, а завтра к тебе пришли и сказали, что логика эндпоинта меняется.
> Сейчас он забанен на всех конференциях
> 7 месяцев назад.
> SECON - Ассоциация разработчиков Пензы
Ну может не на всех. Но раньше он выступал гораздо чаще, везде где мог, и как для русскоязычной аудитории, так и для говорящей.
*англоговорящей
Я тебя наебал. Это было 3 года назад почти. Попутал почему-то, извини. Откуда я взял эти 7 месяцев - хз.
Он сейчас в политоту зачем то ударился и продал очко хуавею и продвигает почти что китайский 996 подход в рф.
А в чём проблема?
Я открыл пару мурзилок и написал это: https://pastebin.com/Ueak5YUP
Swagger-ui открывается по http://localhost:8080/swagger-ui/
Вводятся логин и пароль user/1234
Эндпоинты вызываются.
Там вроде можно прям на странице свагера как-то логиниться и скорее всего прокидывать только те ендпоинты, на которые есть пермишены, мб он это имеет ввиду.
Как лучше разрабатывать REST API? Постоянно слышу про API first подход, когда ты руками описываешь OpenAPI спеку, а из нее уже генеришь код. Как лучше всего фиксировать контракты для интеграции с внешними системами и клиентами? Как автоматизировать процесс генерации клиентских библиотек, чтобы условной команде мобильного клиента не приходилось неделями дрочить код, чтобы написать клиент для интеграции с бекендом, а просто подключить сгенеренную либу в зависимости через Maven/Gradle и писать онли бизнес-логику.
Лучше бы спрашивал:
- сколько ты писал по тдд без спринга (месяц, год, два, десять лет)
- что в спринге послужило таким нереальным камнем преткновения, что фундаментально не позволило точно так же писать по тдд как раньше
Да , я допер как сделать что бы через логинку открывался свагер и были доступны эндпоинты. Я просто помню что я на питоне делал , так что бы при вызове эндпоинта вызывалась новая логинка. Вот как так сделать вообще хуй знает
Ты пишешь по тдд? На спринге, на другом стеке? Как долго?
Дело не в спринге. Просто я не встречал людей не на работе, ни в комментах и чатах в интернете, кто писал бы по тдд. Просто у людей, пишущих не на спринге я не особо спрашивал.
Чекнул видос. Первая половина --- тотальная база, щас редко встретишь людей которые не юлят как Борисов, притягивая солид за уши к спрингу и сложившемуся статусу кво, а честно признают что спринго-сервисы --- вот даже близко не солид, и что классы-сервисы --- это тупо процедурный код. Признать это --- сделать первый шаг в сторону от тупого поклонения культу.
Что касается ТДД, тут уже вопрос сложнее. Сначала, нужно прояснить, в чем ключевое отличие олдскульного процедурного программирования от ООП или ФП, в докладе об этом было по вершкам. Раньше, если ты вызываешь одну процедуру из другой, ты каплишь одну процедуру на другую, средств полиморфизма тогда было не шибко много. С появлением новых парадигм появились куски кода как first-class-citizenы, и возможность декаплить их через абстракции. В ООП декаплинг происходит посредством интерфейсов и Depenency inversion principle. Но все пошло по пизде. Продедурные кодеры продолжали по привычке кодить процедурно на джаве, складывая все что "какбэ об одном и том же" в один класс. Дальнейшую историю можно проследить по рассказам того же Борисова в "спринг построителе" --- сначала эти сервисы были связаны друг с другом жостко. Потом придумали фабрики. Потом --- DI контейнеры. Венцом этой ветки эволюции процедурного кодинга стал спринг.
И докладчики правильно отметили --- единственное отличие кодинга через спрингосервисы от паскаля --- возможность мокать сервисы через мокито. Все. Это --- мизер, на самом деле, да и мокинг как концепция периодически подвергается критике. И как бы --- весь декаплинг на практике свелся к декаплингу сервисов, а на уровне сервисных процедур (которые как были так и остались трушными единицами реюза) все по прежнему жестко связано. Класс-сервис не позволит тебе взять из него одну процедуру (которая на самом деле обычно как раз и является единицей ответственности по SOLIDу, а не весь сраный сервис) и покрыть тестом только ее и ее зависимости: тебе придется взять весь сервис, замокать все его зависимости (которых может быть дохуя), и только потом уже тестить метод. Если еще учесть, что сервисы спринговые, и тотальный вендор-лок на спринг стал нормой, тебе еще придется взять спринг тест и мейнтейнить тестовый контекст. Это полное дно, такие тесты тяжело писать, еще тяжелеее поддерживать, они нихуя не тестят но постоянно требуют внимания (как в твоем примере, "завтра к тебе пришли"). Все это понимают, но никто не признается. ТДД в целом классная идея, но я не просто не видел адекватного ТДД на спринге, я убежден что на сервисном коде он не возможен либо бессмысленен.
Чтобы ТДД работал, нужно пересматривать подходы к разработке таким образом, чтобы код разбивался на внятные единицы реюза, строго раздекапленные друг от друга. У функциональщиков это есть с самого начала --- единицей реюза у них является функция, а система типов позволяет декларировать абстрактный тип функции как аргумент другой функции, позволяя делать композицию функций не капля их друг на друга. В джаве это в теории тоже достижимо, если рассматривать класс как единицу реюза, а не как библиотеку процедур, но это долгая история.
Чекнул видос. Первая половина --- тотальная база, щас редко встретишь людей которые не юлят как Борисов, притягивая солид за уши к спрингу и сложившемуся статусу кво, а честно признают что спринго-сервисы --- вот даже близко не солид, и что классы-сервисы --- это тупо процедурный код. Признать это --- сделать первый шаг в сторону от тупого поклонения культу.
Что касается ТДД, тут уже вопрос сложнее. Сначала, нужно прояснить, в чем ключевое отличие олдскульного процедурного программирования от ООП или ФП, в докладе об этом было по вершкам. Раньше, если ты вызываешь одну процедуру из другой, ты каплишь одну процедуру на другую, средств полиморфизма тогда было не шибко много. С появлением новых парадигм появились куски кода как first-class-citizenы, и возможность декаплить их через абстракции. В ООП декаплинг происходит посредством интерфейсов и Depenency inversion principle. Но все пошло по пизде. Продедурные кодеры продолжали по привычке кодить процедурно на джаве, складывая все что "какбэ об одном и том же" в один класс. Дальнейшую историю можно проследить по рассказам того же Борисова в "спринг построителе" --- сначала эти сервисы были связаны друг с другом жостко. Потом придумали фабрики. Потом --- DI контейнеры. Венцом этой ветки эволюции процедурного кодинга стал спринг.
И докладчики правильно отметили --- единственное отличие кодинга через спрингосервисы от паскаля --- возможность мокать сервисы через мокито. Все. Это --- мизер, на самом деле, да и мокинг как концепция периодически подвергается критике. И как бы --- весь декаплинг на практике свелся к декаплингу сервисов, а на уровне сервисных процедур (которые как были так и остались трушными единицами реюза) все по прежнему жестко связано. Класс-сервис не позволит тебе взять из него одну процедуру (которая на самом деле обычно как раз и является единицей ответственности по SOLIDу, а не весь сраный сервис) и покрыть тестом только ее и ее зависимости: тебе придется взять весь сервис, замокать все его зависимости (которых может быть дохуя), и только потом уже тестить метод. Если еще учесть, что сервисы спринговые, и тотальный вендор-лок на спринг стал нормой, тебе еще придется взять спринг тест и мейнтейнить тестовый контекст. Это полное дно, такие тесты тяжело писать, еще тяжелеее поддерживать, они нихуя не тестят но постоянно требуют внимания (как в твоем примере, "завтра к тебе пришли"). Все это понимают, но никто не признается. ТДД в целом классная идея, но я не просто не видел адекватного ТДД на спринге, я убежден что на сервисном коде он не возможен либо бессмысленен.
Чтобы ТДД работал, нужно пересматривать подходы к разработке таким образом, чтобы код разбивался на внятные единицы реюза, строго раздекапленные друг от друга. У функциональщиков это есть с самого начала --- единицей реюза у них является функция, а система типов позволяет декларировать абстрактный тип функции как аргумент другой функции, позволяя делать композицию функций не капля их друг на друга. В джаве это в теории тоже достижимо, если рассматривать класс как единицу реюза, а не как библиотеку процедур, но это долгая история.
>У функциональщиков это есть с самого начала
Ну то есть проект на какой-нибудь чистой скале без фреймворков без больших трудностей написать по тдд? Кафка была написана по тдд?
Хоть что-то популярное было написано по тдд?
Ну и еще вопрос - в чем такая большая проблема писать на паскале в спринге?
И писалось ли когда-то в прод широкого потребления более оопешно? Все что я читал, что до di-контейнеров был паттерн Service Locator и применялся в проде вместе с ejb. Я не вдавался особо, но критикуют его со стороны того, что он нарушает инкапсуляцию. Локаторы оопешны?
Или вот пример Бугаенки с огромной лесенкой вложенных объектов через конструкторы. Если это тру ооп, то я в рот ебал ооп и пойду молиться на спринг-паскаль.
За скалу не скажу, я на ней не кодил никогда. На джаве у меня есть один проект на работе, покрытый именно юнит тестами, и написанный без спринга (на самом деле мог бы быть и на спринге, но там просто нужды в нем не было, там требовался лоу-левел сокетодроч с микроконтроллерами через netty), но сам понимаешь --- NDA. Считается ли за TDD? Я не знаю, я просто пишу проект и покрываю его тестами. Test-first пробовал, но не зашло.
Насколько я понимаю, что тдд это именно тест-ферст. Или для тебя это максимальное покрытие конкретно юнитами?
Так то я тоже пишу тесты. Интеграционный уровня микросервиса от апишки до тестовой базы я пишу всегда. На валидаторы юниты пишу тоже всегда. На поход во внешние сервисы пишу более мелкие интеграционные и только если это внутренние сервисы.
Тестировать функционал по интеграции спринга с внешними системами, с кафкой например - была идея, но я от нее отказался. На сервисы и репошки пишу только когда логика в сервисе сложная(больше трех действий) или запрос в репошке не совсем тривиальный(например на апсерт пишу, а на инсерт или полный апдейт - нет). Но я понимаю, что это не тдд.
>в чем такая большая проблема писать на паскале в спринге?
Эмм... ну какбэ... потому что спринг написан на джаве для джавы, нет?
>Service Locator
Хз, не возьмусь комментировать.
>пример Бугаенки
Пример Бугаенки --- это попытка построить поверх джавовых классов функциональную парадигму. В целом направление правильное, но оно все сырое и не систематизированное. Есть хорошие практики: (Иммутабельность, отсутствие логики в конструкторах, агитация к маленьким публичным интерфейсам), есть двусмысленные и ненадежные (концепция "обьект как живой организм"), есть ситуативные (отказ от рефлексии и аннотаций), есть и полная лажа. Если заглянуть в его фреймворки, там все еще более пиздецово местами. Там много чего нужно дорабатывать и переосмыслять, чтобы матрешки не были такими пиздецово вложенными и можно было что то в прод кодить. Но в контексте разговора о юнит тестировании --- такие классы действительно проще тестить и переиспользовать.
>в контексте разговора о юнит тестировании --- такие классы действительно проще тестить и переиспользовать.
А интеграционный тест с 10+ уровнями матрешек как писать?
>Или для тебя это максимальное покрытие конкретно юнитами?
Ну я просто не бросаюсь в крайности. Когда я с нуля чето разрабатываю, я все таки сначала пишу код, а уже потом тесты на него. Test-first как правило тяжело делать когда ты еще толком не представляешь че и как тебе предстоит кодить. Но когда, например, я работаю над багом, я могу и с теста начать.
Для меня разные уровни тестирования отличаются только тестируемой сущностью: юнит тест тестирует юнит, интеграционный тест тестирует связку юнитов, e2e тест тестирует продукт (дисклеймер: смысл который я вкладываю в термины выше может отличаться от официально принятых определений, но мне похуй). Поэтому не считаю чем то зазорным взять матрешку и покрыть blackbox-тестами ее публичный контракт.
Нет, пишем строковые константы, их передаём в JdbcTemplate. Все запросы только в DAO (кроме легаси говнокода), а для минимизации ошибок покрываем DAO тестами с in-memory HSQL с эмуляцией синтаксиса оракла.
>in-memory HSQL с эмуляцией синтаксиса оракла
Эмуляция с реальным поведением СУБД как часто расходится?
Если обычные инсерты/апдейты, почти не расходится, но 500-строчные запросы с оконными функциями для отчётов можно даже не пытаться покрыть, их вручную запускаем в оракловой консольке.
>пишем строковые константы, их передаём в JdbcTemplate
>in-memory HSQL с эмуляцией синтаксиса
стремно что то, что другое. Мне кажется уж лучше хуйбирнат. Там есть способы контролировать то что пишешь, QueryDSL тот же. Но ебля с жизненным циклом этого хуйбирната и его кешами остается.
Но мы использует jooq+postgres+testcontainers.
Ведь когда садишься писать по тдд, у тебя 1 фича = 1 тест, ты не пишешь код на вырост.
И скорее всего классы будут называться не XXXService а как-то более по ООПшному, типа имена существительные.
Вот только хуй знает как одобрят такой подход другие анальники на проекте, если они по тдд не писали тот же самый кусок
Мне кажется еще и когнитивно намного сложнее работать с 50 сервисами залупы с 2 методами, чем с 1 сервисом с сотней методов.
И ради чего увеличивать сложность? Ради понтов и феншуя? Чтобы гуру и боб мартин в твоей голове говорили малаца?
Ну и другие разрабы за такое хуями обложат, когда будут дописывать за тобой.
Я мимокрок, но у меня примерно такой лид, он найдёт тысячу и одну причину, чтобы не учиться чему-то новому и обосрать всё вообще юзает эклипс, когда весь отдел использует идею, хейтит и троллит всех кто на идее сидит, при этом не хочет учиться её юзать
Это довольно распространенная фобия, но на самом деле --- нет, не сложнее. Их количество компенсируется читабельностью имен и адской переиспользуемостью.
>И ради чего увеличивать сложность? Ради понтов и феншуя?
Ради переиспользуемости. Переиспользуемость --- крайне и незаслуженно недооцененная и недоизученная характеристика кода. По моим наблюдениям, все случаи говнокодистости можно логически свести к недостаточной переиспользуемости кода. Те же тесты, как простой пример. Нетестируемый код === нереюзабельный код, потому что тесты на самом деле --- ничто иное как частный случай реюза тестируемой сущности.
Сделать отдельную конфигурацию с ани реквест пермит алл
В документации к используемой технологии. Джавовские проперти - это просто глобальная свалка ключей-значений, туда может писать кто угодно и что угодно, так что единого списка нет. Можно хоть создавать свои проперти.
Хватит одного жабакора. Покупаешь серверов да побольше и помощнее, и потом долго ебёшься с сокетами, потоками, вводом-выводом, в конце может что-нибудь да получится.
Ему бы в этой жизни закончить проект хотя бы.
Ну чел же выше писал про мобильную дрочильню. Это же не пкашная калофдюти, там не такой огромный трафик и прям пиздецки низкая летенси не нужна.
В смысле на джаве же построены транзакции во всяких больших банках с большим оборотом клиентов
Ещё в банках свои дата-центры с сотнями серверов.
качай сорсы сервера любой ммо дрочильни (l2,aion, еще какаянить хуйня) и смотри как сделано, охуеешь от старого говнокода но глянешь как оно устроено
Буквально в этом месяце на jokerconf выступал чувак, который делает бэкенды для игорей на vertx.
>чтобы сервер мог держать пару десятков тысяч человек в одной условной песочнице
Классические энтерпрайзные ресты на сервлет-бэйзд стеке могут не подойти. Если пользователей реально дофига и у них дофига активности в реалтайме, понадобится неблокирующий стек и какой нить легковесный протокол типа UDP. Гуглить в сторону nio, асинхронности и реактивности.
Почему? В чем разница?
Если это какая-то пошаговая игра, то можешь посмотреть на https://vertx.io/. Если тебе нужно в реалтайме какой-нибудь мобильный шутан писать, то https://netty.io/
Там через 3-4 месяца выкладывают. До этого платно на сайте.
>энтерпрайзные ресты на сервлет-бэйзд стеке могут не подойти
На самом деле тот же jetty уже давно под капотом на nio крутится, так что в теории энтерпрайзные сервлеты тоже сойдут, хотя конечно лучше вертекс или нетти.
Двачую насчет линейки, там жуткий понос вместо кода, но при этом реальный рабочий проект с nio.
java.nio.*
Они наверное говорят о каких нить пиратских ректальных бэкпортах серверов линейки.
Щас DAO в основном генерят через спринг дату. То есть, пишут интерфейс, помечают его как Repository, но не пишут имплементацию --- спринг сам напишет. В общем случае интерфейс как бин помечать нет смысла, так как его не заинстанцируешь
То есть сервер у этих пираток всегда был на джаве? Даже эта репошка с 2006 существует. А сама линейка с 2003.
А лицензионные серверы тоже на джаве?
Во втором всегда по разному. C чем связано такое поведение?
В документации к forEachOrdered сказано: Performs an action for each element of this stream, in the encounter order of the stream if the stream has a defined encounter order.
Как узнать, имеет ли стрим encounter order? Может ли вся разница быть в том, что Collections.emptyList() попросту не имеет этого encounter order?
Да, может быть такое.
Стримы работают на сплитераторах, а у сплитераторов есть характеристики. Возможно конкат с unordered сплитератором сбросил ORDERED с листа, надо смотреть.
https://docs.oracle.com/javase/8/docs/api/java/util/Spliterator.html#characteristics--
Вылазит исключение:
javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 22050.0 Hz, 16 bit, mono, 2 bytes/frame, big-endian not supported.
Формат задаю вот так:
AudioFormat format = new AudioFormat(22050, 16, 1, true, true);
Подскажите пожалуйста в чем проблема ?
Джава не поддерживает работу со звуком, в джаве есть только работа с сетью и файлами.
>>12487
>>12952
Интересный видос, собсвенно на работе как минимум одно небольшое приложение чистейшая процедурщина
Но вот вопрос, где посмотреть на этот ООП?
Реально ли сейчас писать не процедурно? Как это выглядеть должно на спринге?
Ну вот читал клинкод и все понятно но не понятно, мелкие примеры это хорошо, хэлло ворлд написать по солиду смогу, но как должен выглядеть большой проект не ебу ваще
так сказать лучше один раз увидеть чем сто раз услышать
И наблюдаются ли схожие тренды в других языках?
>Но вот вопрос, где посмотреть на этот ООП?
Там же, где и на реальный ТДД, видимо. Где то далеко-далеко, за семью печатями NDA в коде какого то одного проекта из тысячи.
>Реально ли сейчас писать не процедурно?
В теории, как минимум существует ФП, который можно пощупать на примере haskell (http://learnhaskellforgood.narod.ru/learnyouahaskell.com/introduction.html) или даже, прости господи, скалы. На практике есть свои нюансы.
Ящитаю, что ооп, солид, клинкод и тдд это инфоцыганство и мошенничество.
Пока не видел проектика даже уровня петклиник от спринга.
анон-вкинувший-видос
>как минимум существует ФП
Да, легкий способ забить на поиски истинного ООП
Функциональщина мне нравится и я уже подумывал как в скалу вкатываться, она хотя бы используется в проде в отличие от хаскеля
Лист отличается от пустой коллекции
List.of() возвращает ListN, анонимную реализацию иммутабельного листа, тут стоит дефолтная реализация сплитератора, унаследованная от листа
Collections.emptyList() возвращает свою реализацию как UnmodifiableList, в этом варианте сплиттератора считай нет (emptySpliterator)
Посоветуйте хорошую книгу по стримам в джаве, плз. Ну, чтобы было подробно описано и глубоко, ну чтобы понимать хорошо стримиы, плз
Книжек по стримам отдельных не видел, возможно как раз в Modern Java in Action, что в оппосте висит, рассказано про стримы. А так неплох этот курс, про стримы там много всего.
https://stepik.org/course/91497/promo
Не надо читать книги по стримам, да и вообще не надо глубоко погружаться в эту тему. Только представь, каково будет остальными читать это хуй пойми как работающий волшебный говнокод со стримами. Остальным тоже придётся эти книги читать, если тебя рядом не окажется?
1. Ваша ЗП
2. Сколько ещё планируете работать на барина?
3. Рост/вес/лицо
4. Сколько уже работаете на барина?
5. Ваши цели в жизни?
Если хочешь именного глубокое погружение, гугли доклады Тагира Валеева по стрим-апи.
2. До пенсии сука
3. 180/100/7
4. 6 лет
5. Нет никаких целей, я проебал жизнь
Да.
>1. Ваша ЗП
45к
>2. Сколько ещё планируете работать на барина?
Долго. Только что устроился по сути. Думаю, остаток жизни придется на баринов работать.
>3. Рост/вес/лицо
170/95/4
>4. Сколько уже работаете на барина?
Чуть меньше месяца
>5. Ваши цели в жизни?
Из глобальных - переезд в UK/Ирландию, а затем в США. А так особо никаких, если не говорим про карьеру и профессию.
Так это поведение буквально в доке описано. Как и то, как проверить, есть ли ордеринг у стрима.
То есть, если, к примеру, реализовать геттер, который с вероятностью 0.01 будет вызывать System.exit(), то это типа норм, главное описать это в документации?
Он попробовал отправить 501 отклик, на последнем его ЧСнули.
Такие вопросы: что примерно там будет? Как заранее понять развитие событий? Как вести и позиционировать себя на таком созвоне?
Компания в которой работаю не оч и думаю сам уходить, но хотелось бы полмесяца-месяц посидеть пока не найду более приемлемый вариант, чем: отсутствие доки, трекер времени, очень слабая связь с наставником (из разряда спросил сегодня, ответ зачастую завтра), постоянные просьбы ускориться и прочие прелести
Сам практически не косячил (кроме трекеров), но без доки и фидбека всё делается невероятно медленно, т.к. проекту дохуя лет
>на котором будут: тех лид, тим лид (наставник), хрюша, пм
Это везде так? Я бы просто умер от тревоги и тряски, если бы узнал, что мою судьбу будут решать 4 человека в зуме.
>хотелось бы полмесяца-месяц посидеть пока не найду более приемлемый вариант
А они есть, эти варианты? Айти в стране считай умерло. Вкатусики и раньше никому не были нужны, сейчас их даже на стажировки не берут.
>то это типа норм, главное описать это в документации
Да. Почему нет?
Если по делу: тебя смутило наличие ордеринга (или его отсутствие) у стримов?
хз насчёт везде так или нет
ну у меня есть, даже не смотря на то что ит сдохло
Во-первых, 3 месяца жаба опыта (для хрюш 4, ибо некорректно отображает), плюс ещё на пхп 3 месяца опыта, поэтому я не прям зеленый вкатунчик, а с одного бочка желтоватый :)
Во-вторых, есть варик посидеть на жопе пару месяцев и почти точно вкатиться в телеком (меня там ждут, но не сейчас)
ну и ещё есть один варик, но тот прям вообще на безрыбье
вообще когда в августе в жабу вкатывался ситуация была ещё хуже, чем сейчас, поэтому хз но меня взяли на испытательный туда, где требовался опыт от года, повезло
Да мне тоже постоянно говорят, что на собесе будут присутствовать помимо хрюши еще 3 чела лид, пм и еще какой-то хуй но по факту меня все разы собесил один, максимум два чела, второй обычно молчал или подключался под конец. Так что можешь смело надеяться, что половина тупо проебется. А даже если нет, если тебе дали три месяца там отсидеть, а не выкинули на мороз через пару недель, то считай с очень большой вероятностью оставят.
Тем более, хуйня какая-то формальная нахуй ненужная
😿😿😿
мимо без 5 минут миддл с годом попыта
Да я чисто по угару им закинул, просто на собес думал сходить, потому что скучно без проектов сидеть. И тут - ныа бля. Это знаешь, как по угару к страшной жирухе подкатить, а она тебя еще и отошьет на полном серьезе. Вот такое же послевкусие.
У них же ЧСВ овер 9000, реально на полном серьёзе будут отказывать.
Так может они наоборот не взяли тебя, потому что год опыта много для стажера? Если с годом попыта чел идет на стажера, значит он где-то крупно проебался...
Да хуй знает, в любом случае, вакансия уже в архиве валяется. Значит, взяли кого-то уже
Тогда работодатель тебя обязательно кинет, конечно же. Ты не получишь ни копейки.
Даже во время испыталки тебе обязаны выдать бабки за отработанное, плюс за дни отпуска
Круто, спасибо, анон. Значит можно не бояться остаться с голой жопой в худшем случае.
Есь смысол там чего-то искать/спрашивать? Или любо бешено расово некошерно?
Кому какая разница? Если есть ответ на нужный вопрос, похуй, в какой клоаке на него ответили.
На эту соеволиберальную помойку заходить вообще нельзя. Сначала тебя заставят доказать, что ты потратил пару тысяч часов на решение проблемы сам, потом ответят вообще на другой вопрос, а потом удалят вопрос за дубликат, а если пересоздашь забанят за спам.
Причем, как на англ, так и на ру.
Ну вот от тебя я почти впервые слышу жалобы на это "чудоносное кладезь знаней". У меня самого ток претензии к тому были, что на мой вопрос прилетел всего один куцый ответ
А где ответы тогда искать?
>В этом треде спрашивай.
Тут тоже полно знатоков адреса поисковой системы google
>заставят доказать, что ты потратил пару тысяч часов на решение проблемы сам, потом ответят вообще на другой вопрос, а потом удалят вопрос за дубликат, а если пересоздашь забанят за спам.
Часто по подобной схеме работают. Только не банят, а игнорят вместо этого.
Хотя, по-мне так пусть лучше игнорят, чем говорят "иди в гугл"
Посмотри-посмотри
Слабо погуглить, куда бы я тебя послал с таким ответом?
Понимание "тупой" у всех разное. Некоторым нужна помощь и в тупых вопросах. Не все рождаются синьорами.
Я вот лично, иногда могу слишком зациклиться. В т.ч представлять ситуацию сложнее, чем она есть. И мне не хватает маленькой подсказки, а не посылание в гугл. НУ а в некоторых моментах хочется получить разжевывание "для тупых", которые этот тупой вопрос задали. Если ты не тупой и считаешь вопрос тупым, то для тебя не составит труда объяснить суть новичку на говне и палках?
Ну обычно в наших тредах в гугл на уж очень тупых вопросах шлют, а на хоть сколько-то интересные отвечают
Есть вид разрабов, которые кайфуют от своего дела и им нравится делиться своим опытом. Они чувствуют себя полезными и т.д
А что движет теми, которые в гугл шлют? Да они просто сами не знают ответа или не могут его корректно сформулировать. Сливаются, вот и все. Срут в тред
@
ВАМ ПРИШЁЛ ОТКАЗ ОТ КОМПАНИИ ХУЙВРОТ ИНС
@
ВАМ ПРИШЁЛ ОТКАЗ ОТ КОМПАНИИ НАЁБ.КОМ
@
ВАМ ПРИШЁЛ ОТКАЗ ОТ КОМПАНИИ ГОВНОБАНК
@
ВАМ ПРИШЁЛ ОТКАЗ ОТ КОМПАНИИ МОЧЕБАНК
@
ВАМ ПРИШЁЛ ОТКАЗ ОТ КОМПАНИИ ГАЛЕРА№81
@
ВАМ ПРИШЁЛ ОТКАЗ ОТ КОМПАНИИ ОЧЕНЬ-СЕРЬЁЗНАЯ-КОМПАНИЯ
@
ВАМ ПРИШЛО ПРИГЛАШЕНИЕ ОТ КОМПАНИИ КОПРОСКАМ
@
ЗДРАВСТВУЙТЕ! МЫ РАССМОТРИМ ВАШЕ РЕЗЮМЕ В ТЕЧЕНИИ НЕДЕЛИ.
Если вопрос именно о русском стэковерфлоу, то я вообще хз зачем он существует, когда есть интернациональный. С общим SO, ты наткнулся на ебанутое поведение спринга, написал вопрос, приложил к нему репродьюс кейс, к тебе приходит разраб спринга и дает ответ. У меня так довольно часто было. А в русском это как должно работать? Сколько контрибьютеров спринга русский знают? Сколько галерных гребцов, неосиливших английский, знают вообще хоть что-то?
Если вопрос о стэковерфлоу в целом, то я бы так сказал: задавать адекватные вопросы на SO и не быть при этом посланным нахуй --- это один из самых полезных софтскилльных скиллов, без которого с большой долей вероятности посылать тебя будут по жизни везде. И на SO, и на хабре, и на бордах, и на работе, и в быту. Если этот скилл и английский есть, SO становится крайне полезным и мощным инструментом.
>ты наткнулся на ебанутое поведение спринга
Ну если ты нашел дыру спринга/ебанутое поведение = нестандартная ситуация
Тут какбэ вопрос обоснован. Глупо было бы в таком случае отправлять тебя в гугл, не считаешь? Да и, казалось бы, невозможно.
Остальные аргументы - ага, согласен.
Разве что, как раз для новичкой-бестолочей, которые не знают английский или не могут круто и быстро разбираться с документацией. Кому нужны разжевывания на максимально понятном (родном) языке
Но с учетом СНГ-менталлитета, скорее будешь разжевывать хуи за щекой, а не пояснения основ
>У джавистов, например, есть неплохой телеграм чат javastart.
Прочитал сначала "javascript" лол
>Кому нужны разжевывания на максимально понятном (родном) языке
Я конечно может быть предвзят, ибо на русском SO ничего никогда не спрашивал. Но я не уверен что даже в этом случае русский SO подойдет. И дело даже не в менталитете, просто SO так устроен. Это не форум с флудильней, не чат и не тред на двощах. Это типа база вопрос-ответ, где задавая вопрос и получая на него ответ ты как бэ контрибьютишь в общую базу, которая потом индексируется гуглом для того, чтобы хамы потом могли говорить ньюфагам "иди гугли". Чтобы общий уровень этой базы не скатывался к флудильне, ее довольно жестко модерируют.
Ок, я уловил суть
нихуя
код
Почему? Какие аргументы?
Я на всех проектах, на которых успел побывать, ни разу не видел, чтобы старались избегать ломбока или ругать его. Ну и среди знакомых не встречал негатива.
Читаю книгу "Спринг в Действии" Уоллса - он тоже в примерах использует и хвалит.
Ты Немчинского наслушался? Я встречал только от него критику. Но и то, в его примере он приводил не сам ломбок, а какую-то хз какую библиотеку из кода, написанного мамонтом. Ну и идея "Меньше библиотек богу библиотек"
Это местные троллейбусы.
Нет связи.
>Ты Немчинского наслушался? Я встречал только от него критику.
Нет, не слышал о таком. Надо будет чекнуть.
Ломбок мне был интересен лишь как инженерная поделка: интересно было посмотреть как ректально через аннотейшн процессоры он меняет сорцы перед компиляцией. Как тул, он собирает в себе все те практики, которые я люто не люблю, и конфигурируется способом, который я терпеть не могу (аннотациями). Когда люди говорят, что любят ломбок и не видят без него жизни, для меня это как лакмус --- скорее всего у людей всратая архитектура на сервисах, где мириады ДТОшек маппятся друг в друга, и скорее всего есть ОРМ. Я не нахожу в этом всем вышеперечисленом абсолютно ничего привлекательного.
Я для себя пришел к выводу, что Java бины (https://ru.wikipedia.org/wiki/JavaBeans) свое отжили, и нет в геттерах-сеттерах никакого практического профита перед обычными полями. В этом месте обычно люди начинают возражать, что "а как же прокси, а как же нам переопределить доступ-запись к полю", но я скажу что в гробу я видел людей, сознательно делающих аспекты на геттерах-сеттерах, переопределяющих оные или пишущих туда логику. Абсолютно отвратительная практика. Единственное место где сегодня реально нужны каноничные джава-бины, это ORMы, и то нужны они там скорее по историческим причинам, да и ORMы сами по себе активно критикуемы и сомнительны. В качестве эксперимента я пробовал как то вместо джава-бинов писать тупо структуры с публичными полями без методов, и не заметил никакой разницы. А без геттеров-сеттеров ломбок особо и не нужен. А уж с рекордами и подавно.
>>16422
Ну и стоит также добавить что написание конструкторов, геттеров и сеттеров это не та проблема, которую я бы стал решать через ломбок. Их успешно пишет за тебя идея. Более того, в написанный идеей конструктор ты можешь воткнуть дебаггер, а в написанный ломбоком --- нет.
И не дай боже тебе столкнуться с неочевидной багой в ломбоке, когда какой нить equals не сравнивает все что ты ожидаешь от него. Это может привести к эпичным приключениям на ровном месте. Хотя тот же equals ты так же мог бы написать идеей в один клик и отдебажить.
От типичного порриджа слышу
>конфигурируется способом, который я терпеть не могу (аннотациями)
А что тебе не нравится в конфигах на анотациях? В том же спринге самый удобный способ как по мне
Про спринг не буду спорить. Там где в одном предложении встречаются слова "спринг" и "удобство", начинается субьективщина и вкусовщина (в лучшем случае. В худшем --- ебаный спрингокульт).
Про ломбок сказано выше. В ломбоке дохрена аннотаций, и их комбинация не всегда дает предсказуемый результат. Встречаются баги, которые если встречаются, тяжело ловятся и больно бьют. При этом в отличие от спринга проблема которую решает ломбок ничтожна и высосана из пальца.
Аннотации в ломбоке и спринге отличаются принципиально
Не знаю, возможно, нахуй слать
Да не только из-за того, что я тупой скуф, просто задачи, которые решают на джаве, показались более скучными что-ли. Весь этот энтерпрайз вообще интереса не вызвал.
Хех, а я прошел собеседование в контору на жабе, но в итоге выяснилось, что придется писать на го большую часть времени.
А как это обычно происходит, лул? Какие гарантии даются, что за те 2 недели, что я отрабатываю и после УВОЛЬНЯЮСЬ, они не найдут кого то другого?
>и нет в геттерах-сеттерах никакого практического профита
А в конструкторах есть. Это основа, это база ООП.
>перед обычными полями.
Публик поля что ли? Преимущество есть, в возможности сохранения более удобной обратной совместимости при особо сильном говнокоде. Но ты прав, говно и моча.
>>16526
>Ну и стоит также добавить что написание конструкторов, геттеров и сеттеров это не та проблема, которую я бы стал решать через ломбок.
Аннотацию быстрее поставить и самое главное это лучше читается. Если потребуется бОльший функционал - стираешь аннотацию и пишешь своё.
Можно подумать голанг это не энтерпрайз, лол.
Отдал бы свою годовую премию, что бы посмотреть на батл этих клоунов с Juergen Holler и Gary Russell, которых они обозвали аналитиками.
Нахуя ты такую маленькую "я" написал, ты мне ответь
А нахуя тебе на бенче отработка? Попроси, чтобы уволили побыстрее. Не?
А сколько лет опыта в джаве у тебя?
Чем они лучше? Можно примеры?
Spring Cloud, например, или работа с очередями?
ИМХО, это самое сложное, сам же язык Java довольно примитивен.
Я умею писать сервлеты, desktop приложения (AWT/Swing/JavaFX), REST сервисы на Spring Boot/Data JPA. Но для работы этого недостаточно. На собеседования не зовут.
Где научиться именно фреймворкам?
Пиздуй гуглить
https://javarush.ru/quests
Судя по их же планам обучения - там вроде воще спринга нихуя нет
Тебя не зовут тамушто у тебя опыта нет, а не потому, что ты Cloud не знаешь.
Гэри Рассел какой-то мудак и хамит постоянно в ответах на стековерфлоу.
Йорген Холлер это чел, которому Жека Борисов насасывает в каждом видео.
А скок у тя годовая премия? Реально бы отдал? Пиздишь, я уверен
У меня вот годовой премии вовсе и нет. Я бы с легкостью отдал
Ты перечитай свой вопрос и предположи, что бы ты сам на такое ответил.
Первое что приходит на ум - ответить какую-нибудь подобную односложную хуйню, типа "каком к верху" или "никак"
Ну или вот так >>17471
Это просто крик души? или тебе правда нужен совет/ответ?
БОлее подробно и точно вопрос сформулируй. Дай вводных. Кто ты, че тебе надо, сколько чего учишь.
Если ты всегда так поступаешь, то неудивительно что у тебя нет работы не будь мудаком
>Это просто крик души?
Да
Я заебался читать, что меня не готовы пригласить для дальнейшего рассмотрения.
Я все умею и все могу, я студ, у меня разве что петов нет.
нах? у меня удаленка
это что, правда идеальный проект на спринге? Вы правда с подобным говном работаете тут?
Че такой маленький процент кода на жабе
Таким вот способом. Тип создавал класс, наследовался от некого графического элемента(контейнера), и уже в этом классе описывал всю внутрянку, там лайауты, кнопочки хуепочки. Потом делал new и получал уже сколько угодно таких заранее подготовленных элементов.
Как такое гуглить, как называется такой приём?
Нет. Очень плохой пример на самом деле:
- проект разбит по пакетам как-то по еблански, а не слоями.
- в контроллерах отдают модельки вместо дтошек.
- пути прописанны прямо в контроллерах.
- нахуй ненужный шаблонизатор.
- нет миграций схемы бд.
- нет самого нужного типа тестов - от апишки до тестовой базы. Даже с h2, уж не говоря про тестконтейнеры.
- @Transactional ставят просто везде, даже где он нахуй не нужен
- модельки зачем-то являются JavaBean
> пути прописанны прямо в контроллерах
А как надо?
> @Transactional ставят просто везде
А где он не нужен? В онли рид операциях?
а че так? щеглам только так отвечать и надо
@Transactional не нужен там где один запрос.
У меня пути лежат в отдельном классе в константах. Из этого класса-хранилища путей удобно навигироваться по контроллерам и пути для тестов на апишку ты берешь из того же места.
То есть то, что мейна нет тебе ниибёт? Как это говно читать, откуда начинать?
Смотря для каких целей читать. Если просто прочесть весь микросервис с простыми крудами - то с помника, пропертей и кинфигов, чтобы понять какие там технологии.
Потом читаешь схему бд и модельки. А потом идешь от контроллеров к сервисам и репошкам.
Я так обычно делаю, когда кидают что-то сделать в незнакомом микросервисе на спринг-буте.
На монолите я недолго работал. Там сложнее понять откуда начинать читать код, потому что пытаться прочитать весь проект - непосильно и не нужно.
А что, если я не знаю, что такое спринг бут? Мне придётся часов 20 читать его исходники, чтобы понять, что он читает все классы в пакете.
Код должен быть понятным по названиям методов и классов. Но даже это не наибольшая проблема - все знают, как работает спрингоговно. Проблема в неявных связях, класс, просто висящий в пустоте и имеющий аннотацию каким-то образом влияет блядь на поведение программы. Пиздец просто.
>Пиздец просто
А что ты хотел? Для понимания происходящего и нанимают конфигураторов аннотаций. Если ты не хочешь становиться конфигуратором аннотаций, то просто не бери проекты со спрингом.
Как раз на спрингоговне тебе надо читать почти что весь проект, а в ООП-монолите или связке серверов (микросервисами это называть унизительно для связки серверов) ты можешь просто открыть мейн, увидеть, что там делается, выбрать нужную тебе часть и читать.
>Код должен быть понятным по названиям методов и классов.
Прикладной крудошлепский код - должен. Инфраструктурный, типа кода фреймворков, бд или операционных систем - нет.
>класс, просто висящий в пустоте и имеющий аннотацию каким-то образом влияет блядь на поведение программы.
annotation driven development это просто декларативный подход, как он есть.
Ты же не бомбишь от того, что не залезая в самую пучину сорцов ты не знаешь что там под капотом у sql запросов каждой конкретной бд?
>почти что весь проект
*если разрабы этого говна удосужились называть свои классы и пакеты по всем соглашениям, иначе придётся читать весь
> Инфраструктурный, типа кода фреймворков, бд или операционных систем - нет.
Тыскозал?
>annotation driven development это просто декларативный подход, как он есть.
Декларативный подход - это ООП. Спригопараша - это мазня говном.
>Ты же не бомбишь от того, что не залезая в самую пучину сорцов ты не знаешь что там под капотом у sql запросов каждой конкретной бд?
Потому что у меня есть унифицированное API (язык сикули), которое разрешает мне писать то, что я хочу. Как интерфейс в джаве.
Давай мне пример на гитхабе с крудами уровня петклиника выше на ооп с мейном.
6 табличек. 15 эндпоинтов, 20 методов репошек с джойнами под капотом, часть из которых кешируется. Валидация моделек/дто.
В проекте выше это занимает 800 строчек чистого java-кода без тестов. И пишется за вечер.
>Можно какой-нибудь источник откуда ты это взял? По моим данным ооп и декларативщина не имеют ничего общего.
Егор Бугаенко, Элегантные объекты.
Ну я тебе и не предлагаю полностью следовать егорке. Он показывает принцип, основу, базу того, на основе чего можно строить свои приложения. Принципы - интерфейсное программирование, ручная инъекция зависимостей.
Потом может не быть.
А может, как только он закончит свою шарагу - он свалит мидлом на х1.5-2, ведь у него уже 2 года коммерческого опыта в трудовой и корочка.
А у тебя он за эти два года даже с парт-тайма будет на сессии отпрашиваться и за это время по реальным скилам вырастет максимум до крепкого джуна.
Мань, круд сам по себе подразумевает, что это дрисня ебаная с инъекциями залуп. Это то же самое, что попросить пример государства без власти.
И что? Для этого стажеры и нужны
>круд сам по себе подразумевает, что это дрисня ебаная с инъекциями залуп
Ну такой тупости даже Егорка не мог придумать, тут явно ты сам.
Любой бекенд это всегда круд. Тупой бекенд это только он и есть. Более сложный - это куча всего остального. Но круды есть везде.
Это как сложение однозначных чисел, если твой подход не может даже этого, значит это не подход, а пук в лужу.
Спешите видеть, крудошлёп настолько одебилел со своими крудами, что теперь думает, что кроме них мира нет.
Жду примера любого другого серверного кода на джаве с твоим подходом.
Жду примера любого другого серверного кода на джаве с твоим подходом.
Это какая-то библиотека. Где пример использования? В смысле проект. Там только какие-то 5-строчные микрофрагменты.
Тот же петклиник это рабочий прототип сайта с конкретной бизнес-задачей. Почему Егор с миньонами не мог написать на своем подели что-то аля петклиник?
>annotation driven development это просто декларативный подход, как он есть.
Мне одному кажется что называть спринговые анноташки "декларативным подходом как он есть", тем самым ставя оные в один ряд со скулем и хаскеллем, это такой пиздеж и вирусный маркетинг от спрингокульта? Всегда дико ору когда слышу как "спринг" и "декларативный" ставят в одно предложение, хотя казалось бы формально не подкопаться.
Мимокрок
Это просто подмена понятий. Под декларативным подходом всегда подразумевалось что-то вменяемое с императивным началом, последовательно переходящее в декларатив, а не наоборот - разбросанное говно по проекту, которое при минимальном углублении превращается в ебучие процедуры.
Нет. Это подразумевалось в только твоей голове. Декларативный подход заключается, чисто в значении слова "декларативный", то есть описывается только ожидаемый результат.
>>17811
Спринговые анноташки отличаются от сиквеля и функций в функциональщине очень широкой областью видимости. Причем иногда сложно понять насколько широкой. А еще эта область видимости настраивается. И сложно догадаться, как эту область видимости сконфигурировать, только чтением доки и стековерфлоу. Например настройка основного и тестового контекстов и конфигурация бинов внутри них может потрепать мозг.
Это кукарекают ооп-евангелисты и спрингохейтеры.
В то время пока мы - простые гречневые конфигураторы аннотаций(как и другие работяги на других популярных фреймворках в других языках) пилим фичи нужные бизнесу и людям.
Ты про System.setProperty()? Просто придумываешь название и сеттишь. Нигде дополнительно регистрировать свойства не нужно.
System.setProperty("свое свойство, как java.runtime.version", "свое значение");
System.getProperty("свое свойство, как java.runtime.version");
Жду ваших проектов без di и аннотаций от которых вас так печет. На жаба-ее и микронавтах эти вещи тоже есть.
Каких-то других подходов в проде в прикладной разработке на жабе нет. Если утверждаешь, что есть - бремя пруфа лежит на тебе.
Зачем использовать проперти как базу данных, если для этого есть реестр Windows?
Ну, что я и говорил, крудодебил одебилел в край и решил, что кроме крудов ничего нет.
Разговор начался с критики спринга. И он придуман для крудов и ни для чего больше не используется. Да и вся остальная жаба вне крудов это крохи.
Ну так что ты пишешь на жабе вне крудов?
>>17832
>Спринговые анноташки отличаются от сиквеля и функций
Анноташки от функций отличаются литералли всем. Анноташка --- всего лишь примитивная метадата на классе, которую читает и обрабатывает фреймворк. Грубо говоря --- голый тупл. Даже не язык. Сам же фреймворк, если проводить аналогии и сравнивать его с СУБД или компилятором хаскеля --- максимально тупорылое поделие, которое ничего не пруфчекает, не оптимизирует, и просто делает то, что нааннотированног. Затыкает локальные нужды джавистов. Неплохо затыкает, стоит отдать должное, но по сравнению с разработкой штук на декларативных языках раскид анноташек по классам --- опыт настолько небо и земля, что воспринимать это декларативной разработкой просто моск не поворачивается.
>>17946
>бремя пруфа
Если у кого то и есть пруф (у меня есть), он все равно не сможет его продемонстрировать. По многим причинам, начиная от того, что наработки могут быть под NDA, и заканчивая тем, что двачевый тред не очень то располагает к развернутой демонстрации альтернатив. Или ты как себе представляешь это?
>>17965
>Ну так что ты пишешь на жабе вне крудов?
Хуй знат что пишет тот анон, но я например пишу проксю для кое каких железяк со всякими фичами, специфичными для этих железяк. У железяк свой бинарный протокол поверх транспортного уровня, поэтому проект на нетти, а от спринга там только реактивные стримы. DI там нахуй не вперся, ибо в основном все сводится к цепочке реактивных операторов либо композиции обьектов и лямбд. Чувствую себя охуенно, лучший по своей поддерживаемости проект, хорошее покрытие юнит-тестами, прозрачная архитектура, высокая переиспользуемость кода (так как нет вендорлока на DI контейнер, лол).
А эта вот ментальность, что "на джаве пишут только круды". Хуй знат, как по мне это какие то узколобые загоны гребцов уровня миддл и ниже --- их как раз ни к чему более серьезному кроме крудов и не допускают, вот для них все и есть --- круд. Сверхобобщать в таком ключе, сорян конечно, но для меня звучит как какая то чмошная тема. Типа "если я омежка и всю жизнь круды на жабе писал, значит все такие".
>>17960
Чел --- на свете нет ни одного человека, который мог бы троллить спрингоебов через "декларативное ООП" так же тонко и элегантно, как это делал мэтр Бугаенко. Остановись, не унижайся.
Мимокрок, к спрингу, DI и аннотациям отношусь нейтрально, с лором Егорова ООП знаком.
>>17832
>Спринговые анноташки отличаются от сиквеля и функций
Анноташки от функций отличаются литералли всем. Анноташка --- всего лишь примитивная метадата на классе, которую читает и обрабатывает фреймворк. Грубо говоря --- голый тупл. Даже не язык. Сам же фреймворк, если проводить аналогии и сравнивать его с СУБД или компилятором хаскеля --- максимально тупорылое поделие, которое ничего не пруфчекает, не оптимизирует, и просто делает то, что нааннотированног. Затыкает локальные нужды джавистов. Неплохо затыкает, стоит отдать должное, но по сравнению с разработкой штук на декларативных языках раскид анноташек по классам --- опыт настолько небо и земля, что воспринимать это декларативной разработкой просто моск не поворачивается.
>>17946
>бремя пруфа
Если у кого то и есть пруф (у меня есть), он все равно не сможет его продемонстрировать. По многим причинам, начиная от того, что наработки могут быть под NDA, и заканчивая тем, что двачевый тред не очень то располагает к развернутой демонстрации альтернатив. Или ты как себе представляешь это?
>>17965
>Ну так что ты пишешь на жабе вне крудов?
Хуй знат что пишет тот анон, но я например пишу проксю для кое каких железяк со всякими фичами, специфичными для этих железяк. У железяк свой бинарный протокол поверх транспортного уровня, поэтому проект на нетти, а от спринга там только реактивные стримы. DI там нахуй не вперся, ибо в основном все сводится к цепочке реактивных операторов либо композиции обьектов и лямбд. Чувствую себя охуенно, лучший по своей поддерживаемости проект, хорошее покрытие юнит-тестами, прозрачная архитектура, высокая переиспользуемость кода (так как нет вендорлока на DI контейнер, лол).
А эта вот ментальность, что "на джаве пишут только круды". Хуй знат, как по мне это какие то узколобые загоны гребцов уровня миддл и ниже --- их как раз ни к чему более серьезному кроме крудов и не допускают, вот для них все и есть --- круд. Сверхобобщать в таком ключе, сорян конечно, но для меня звучит как какая то чмошная тема. Типа "если я омежка и всю жизнь круды на жабе писал, значит все такие".
>>17960
Чел --- на свете нет ни одного человека, который мог бы троллить спрингоебов через "декларативное ООП" так же тонко и элегантно, как это делал мэтр Бугаенко. Остановись, не унижайся.
Мимокрок, к спрингу, DI и аннотациям отношусь нейтрально, с лором Егорова ООП знаком.
Ну и чё ты высрал? 2к символов, а смысла 0.
>А эта вот ментальность, что "на джаве пишут только круды"
Ну так я и говорил, крохи по сравнению с крудами. Можно попробовать поискать статистику по сайтам с вакансиями например или по статистике жидбрейнс. Думаю там 90% работы на жабе это круды.
Ну у тебя стек более респектабельный чем круды, уважаю. Хотя такое обычно пишут на плюсах вроде.
Но мы, крудошлепы в жаба мире это норма, база, основная ца.
Да там пишут и десктоп, и андроед и инфраструктуру типа kafka или keykoak, ты вот железозависимое пишешь, а еще всякие java card вроде бы до сих пор существуют.
Но все эти сферы по сравнению с крудами это капля в море.
>приходят и тыкают пальцами в инструмент для крудов - в спринг
>это им не нравятся и то тоже говно для быдла
>ну покажите как без di и runtime аннотаций круды писать
>рряяяя, круды не не нужны, круды для тупых омежек
>Но мы, крудошлепы в жаба мире это норма, база, основная ца.
Эта норма ничего не доказывает и не опровергает. Как аргумент в споре о спринге, это аппелация к большинству. Ее обычно спрингокульт любит использовать чтобы морально давить отступников. С конструктивом оно имеет столько же общего, сколько имеют ООПфаги, которые чуть что на личности переходят.
Ну для меня аппеляция к большинству это валидный аргумент.
Это мировоззренческая штука.
Типа как средний россиянин это 40-летняя тетка в разводе, живущая в мухосрани 100-500к населения, зарабатывающая 20к р. И когда говорят о "россиянах", то я вот такого человека себе представляю.
Причем численное превалирование таких теток в рф над остальными половозрастными группами не такое большое, как превалирование крудошлепов в джава-мирке.
А для тебя большинство может имеет сильно меньшее значение.
Например, я съебался за бугор, работая на текущую РФ-галеру. Пока был там - нашел другой оффер и надо уволиться. Ну тут ток траблы возвращаться за трудовой.. ну эт похер, наверно.
Другое дело - как трудоустраиваться в новую без приезжа в страну. Это будет чернуха/неофициалка? Или можно как-то в электронном виде все оформить?
Не сталкивался, реквестирую пояснений
Реально, хотя гибрид более вероятен на данный момент
А че там не мочь, есть же гайд с командами на первой вкладке по запросу. Или ты даже как копировать -> вставить не можешь разобраться? Тогда тебе пока рано на стажировку да и вообще в программирование идти, лучше пока откатись на что-то более подходящее к твоему уровню, например, к таблице умножения.
Да
Твоё право. Но тогда не обижайся, когда в ответ на апелляцию к бремени доказательства будешь нахуй послан, если сам невалидные аргументы принимаешь за чистую монету. А то охуенно устроились блять, двуличные хуеплеты, поначитались hpmor и строят из себя национал-рационалистов.
Вопрос:
Стянул ветку feature/yoba-123, затем подмерджил в нее master. Там конфликты и все такое.. Порешал, но не уверен, что правильно.
Как проще быстрее откатить состояние ветки к тому, которое я стягивал из гита?
Удалить локальную ветку и стянуть ее заново?
Как это проще сделать через интерфейс Intellij IDEA
А надо, чтобы не просил? Ты пишешь хакерскую утилиту для взлома винды?
А инфу где брал?
Хз. Само как то выучилось.
По видосам. Сперва в конце жаба курса он Пономарева из мфти посмотрел про di и спринг.
https://www.youtube.com/watch?v=szI5sza6Wug
https://www.youtube.com/watch?v=ftl7iebCLqQ
Потом посмотрел курс Алишева. Он идет от хмл конфигурации к джавовым.
https://www.youtube.com/playlist?list=PLAma_mKffTOR5o0WNHnY0mTjKxnCgSXrZ
И левого челика для понимания спринг-бута. https://www.youtube.com/watch?v=mezajS7aA2Y
Потом немного практики в виде letscode sweater.
https://www.youtube.com/playlist?list=PLU2ftbIeotGoGSEUf54LQH-DgiQPF2XRO
Тут я писал свой первый пет, переделывая sweater. Все непонятное нагугливал на baeldung и stackoverflow. Так же до сих пор помогает поиск по github. Например тебе надо найти как сконфигурировать две библиотеки вместе, а туториалы ты нагугливаешь только по отдельности. Поиском по гитхабу ищешь вместе по нескольким именам классов, используемым для конфигурации обоих. И часто находишь решение.
Потом Курс otus. В принципе всю теорию можно заменить на этот курс.
https://nnmclub.to/forum/viewtopic.php?t=1474084
Тут все тоже самое и немного больше. 80 часов видосов. Думаю точно стоило пропустить точно Spring Batch, Spring Integration и все что связано с клаудами после 32 урока по докеру. 18-20 с реактивщиной и Spring WebFlux тоже скорее не нужны.
После этого писал второй пет. Посмотрел туториалы по тестированию спринга. Пригодились конфигурация @SpringBootTest, MockMvc, тестконтейнеры https://rieckpil.de/start-here/
Кроме того потратил время и не советую:
- Прочитал 7 глав Spring in action 5 - не зашло. Очень поверхностно, про магию ничего. Плейлист летскода для этих целей был лучше. Бросил из-за резкого перехода на версию с фронтом на ангуляре.
- Отрывками прочитал отдельные главы pro spring 5.
- Посмотрел все видосы Борисова. Хотя полезный только спринг-потрошитель. Да и то только для собесов и успокоения, что ты примерно представляешь что под капотом у спринг-контекста.
- Смотрел второй плейлист летскода, который фронтом с вью.
- Смотрел десяток туториалов на sring.io - они очень микроскопические и бесполезные.
Во время второго пета пошел по собесам. На места, где нужны алгосы - даже не откликался. Написал пару тестовых. В 3 из 6 собесов дали оффер. 2 из них были совсем дном. В не совсем дне я сейчас и работаю.
По видосам. Сперва в конце жаба курса он Пономарева из мфти посмотрел про di и спринг.
https://www.youtube.com/watch?v=szI5sza6Wug
https://www.youtube.com/watch?v=ftl7iebCLqQ
Потом посмотрел курс Алишева. Он идет от хмл конфигурации к джавовым.
https://www.youtube.com/playlist?list=PLAma_mKffTOR5o0WNHnY0mTjKxnCgSXrZ
И левого челика для понимания спринг-бута. https://www.youtube.com/watch?v=mezajS7aA2Y
Потом немного практики в виде letscode sweater.
https://www.youtube.com/playlist?list=PLU2ftbIeotGoGSEUf54LQH-DgiQPF2XRO
Тут я писал свой первый пет, переделывая sweater. Все непонятное нагугливал на baeldung и stackoverflow. Так же до сих пор помогает поиск по github. Например тебе надо найти как сконфигурировать две библиотеки вместе, а туториалы ты нагугливаешь только по отдельности. Поиском по гитхабу ищешь вместе по нескольким именам классов, используемым для конфигурации обоих. И часто находишь решение.
Потом Курс otus. В принципе всю теорию можно заменить на этот курс.
https://nnmclub.to/forum/viewtopic.php?t=1474084
Тут все тоже самое и немного больше. 80 часов видосов. Думаю точно стоило пропустить точно Spring Batch, Spring Integration и все что связано с клаудами после 32 урока по докеру. 18-20 с реактивщиной и Spring WebFlux тоже скорее не нужны.
После этого писал второй пет. Посмотрел туториалы по тестированию спринга. Пригодились конфигурация @SpringBootTest, MockMvc, тестконтейнеры https://rieckpil.de/start-here/
Кроме того потратил время и не советую:
- Прочитал 7 глав Spring in action 5 - не зашло. Очень поверхностно, про магию ничего. Плейлист летскода для этих целей был лучше. Бросил из-за резкого перехода на версию с фронтом на ангуляре.
- Отрывками прочитал отдельные главы pro spring 5.
- Посмотрел все видосы Борисова. Хотя полезный только спринг-потрошитель. Да и то только для собесов и успокоения, что ты примерно представляешь что под капотом у спринг-контекста.
- Смотрел второй плейлист летскода, который фронтом с вью.
- Смотрел десяток туториалов на sring.io - они очень микроскопические и бесполезные.
Во время второго пета пошел по собесам. На места, где нужны алгосы - даже не откликался. Написал пару тестовых. В 3 из 6 собесов дали оффер. 2 из них были совсем дном. В не совсем дне я сейчас и работаю.
Спрос на жабу, которая типа уехала и РФ, в разы выше спроса на говноланг, который типа не уехал.
И как тебе голанг?
И что по голангу в рф. Откуда инфа, что с ним лучше? В мвп треде после спецоперацией несколько анонов точно вкатились в спринг.
А как практиковаться? Перепечатывать текст с видоса?
Отус - это где тот чел после бухича читал лекции? Пробовал, но не зашло.
Голанг сложный, там всякие подводные камни, где легко ошибиться. И программы надо писать чуть ли не с нуля. Вручную выстраивать всю архитектуру. Нет ОРМ, а надо всё на чистом SQL писать. Веб тоже на низком уровне, самому надо http-запросы на низком уровне формировать и обрабатывать.
Можно опционально перепечатать. Типа имена классов чуть лучше запомнятся.
Главное внимательно посторочно прочитать весь код, который прилагается к урокам и запускать. Покрутить функционал, подебажить. Немного изменить код.
Поэтому например я считаю, что бумажные кники по кодингу бесполезны. Книгу по кодингу бестолку читать в кресле вдали пот пеки и иде.
Да, в отус скуфы с заплетающимися языками. Но они для продаванов курсов неплохо шарят. Вкусовщина. Меня их плохая речь тоже раздражала, но это не было большой проблеймой.
>И что по голангу в рф
Большие продуктовые конторы сейчас чаще голанг выбирают. VK, Яндекс, Озон, Авито, Касперский, 2ГИС, МТС, вайлдбериз - по ощущениям голанга там сейчас сильно больше, чем джавы. А где-то джавы и вовсе нет практически.
Джава - галеры, госуха и банки. Сбер, ВТБ, Газпромбанк, Райф, Тинек, Открытие, Точка, Лига цифровой экономики.
В общем, если собираешься в РФ строить карьеру в банках, то джава нормальный выбор. Если хочется чего-то более продуктового, то лучше голанг либо даже ноду с питоном.
Как вкатиться даже на эти жалкие 100к?
Ну сам говноланг как язык довольно простой и, главное, понятный, если ты до этого писал на си и питоне. Джава тоже как язык простой. Но спринг уже не прост. Вернее, кажется простым на первый взгляд, когда достаточно прописать 5 аннотаций и у тебя уже готовое полноценное MVC приложение вроде той же петклиники. Когда приходит момент воспользоваться дебагом или что-то нетривиальное сделать, то начинаются жуткие костыли и пляски с бубном. Дебажить вообще очень сложно из-за магии аннотаций и рефлексии.
>Большие продуктовые конторы сейчас чаще голанг выбирают. VK, Яндекс, Озон, Авито, Касперский, 2ГИС, МТС, вайлдбериз - по ощущениям голанга там сейчас сильно больше, чем джавы.
А откуда такая инфа? Звучит как инсайды. Я слышал, что в озноне нет жавы и то только от голанг-евангелистов на дваче.
Открываю сейчас вакансии vk на хх. java-разраб - 18 вакансий, голанг - 5.
Диплом есть, гуманитарный. Диплом я получил 10 лет назад.
Проходил собеседования в МЯСО и сопутствующие крупные конторы. Как я понял, самое ок место, если хочешь писать на жабе/котлине в бекенде - это где-нибудь в Яндексе (скорее всего в маркете). В остальном команд и бизнес-юнитов, где пишут на гошке, тупо больше (разве что в сбере иначе). В VK и Озоне так вообще гошных команд в разы больше, чем джавовых. В ВК джава это одноклассники и платформа для видео. Все остальные новые сервисы в основном на го пишутся. В озоне на джаве буквально пара команд пишет, одна из которых это поиск на основе apache lucene. Все остальное это гоха и немного шара.
2ГИС, wb, Касперский, авито - вообще не видел джавы. В МТС где-то 50/50 джавы и голанга.
Таблетки, быстро.
Он лишь на первый взгляд простой. В силу того, что добавили более высокоуровневые конструкции, чем в Си, то возникают проблемы с их использованием. К примеру, передают в функцию слайс, функция его изменяет, а ничего не меняется, потому что была передана копия слайса, а не ссылка на него.
А тебе надо думать на уровне современных веб-фреймворков, но при этом реализовывать эти кишочки. Самому написать http-сервер на горутинах, где ты каждый запрос должен сам обработать, а не втыкать только высокоуровневые контроллеры с бизнес-логикой.
Ну так то согласен. Если у тебя амбиции работать в топовой конторе и тем более в продукте и еще и современном, то наверно гошка получше.
Но го вне этих больших продуктачей очень мала.
А у джавы, кроме госухи, банков и галер есть еще дохуя более мелкого интерпрайза от телекомов и ретейлеров до заводов.
Так что если цель просто вкатиться и зарабатывать пару сотыг, то джава все равно вне конкуренции.
Да там в конечном итоге просто дернуть базу данных и переложить джейсон...
Даже с net/http уже можно примитивные круды писать почти так же, как на спринге...
Ты меня расстроил конечно. Хотел учить джаву, но теперь придётся голанг или сишарп.
На плюсах ты бы только мемори лики, гонки и невалидные указатели ловил веками, а потом заебался бы портировать на все оси. И все равно получилось бы говно, потому что скорее всего под это поделие не было бы неректального способа писать плагины. Джава тупо проще.
Именно по этому вижуал студии нет на прыщах и на маке она появилась только недавно. При том, что возможности майков на порядок превышают возможности жб.
Хочу в ваши ряды и начал с прочтения книги, дошел до Побитовых операторов Java.
Понятно что они делают, не понятно зачем они нужны. Неужели вы ими пользуетесь?
Вижуалстудии нет для других ОС, потому что мелкомягкие до определённого времени срать хотели на другие ОС. А теперь её не могут портировать, потому что она гвоздями прибита к винде, даже 64-битную версию долго не могли выпустить. На маке вижуалстудия - это на самом деле переименованная Xamarin Studio с более известным брендом. А на прыщах студии нет, потому что мелкомягкие не рассматривают прыщи как десктопную ОС.
Хотели бы кроссплатформенную IDE для C++ - написали бы, даже васянский Qt Creator кроссплатформенный. Но нахуй им это нужно, им шарп надо продвигать, который в переименованном Xamarin поддерживается.
Только для реализации бинарных протоколов и форматов. Каждый день этим в жабе не занимаются.
>даже васянский Qt Creator кроссплатформенный
почему даже, если qt это типа флагман кроссплатформенности на плюсах?
>не понятно зачем они нужны
Скорее всего они тебе никогда не понадобятся, а так во всякой байтоебле часто используются.
>>18825
На сишарпе работы еще меньше, чем на жабе, учти это. Там половина это винформы и wpf на госпредприятиях, 20% - игрульки на юнити и еще 30% - тот самый бекенд на дотнеткоре. В крупняке шарпа мало.
>>18944
Спасибо. Может еще с одним вопросом поможете, что лучше для изучения?
1. Самостоятельное изучение, а потом курсы с пет-проектом
2. Только самостоятельное изучение и пет-проект
3. Курсы, так как сам долго буду учить и пет-проект будет не о чем
4. Что-то другое
И если курсы, то на что смотреть, как выбирать, или это все одно и то же?
Всем нужен разный подход к обучению. Я вот не люблю курсы, там обычно требуют жёстко следовать готовому плану обучения, и даже если сам понимаешь, что сейчас тебе что-то не нужно, пропустить это никак нельзя, многие знакомые из-за этого плевались от джавараша. Да и на некоторых курсах надо взаимодействовать с другими людьми, у меня это всегда убивает мотивацию в ноль, мне просто психологически легче разобраться в одиночку. Поэтому читал книги и туториалы, смотрел обучающие видео и подобное. Можно в любой момент скипнуть ненужную инфу, а по нужной дополнительно что-нибудь загуглить.
Пет-проект необходим в любом случае, только так можно закрепить знания на практике, даже если это типичный круд, который уже тысячи раз написали.
Курсы разными бывают. Я проходил hyperskill в свое время. В 2020 году он еще был бесплатным, в бета-тесте, причем там никаких ограничений по времени нет, как и строгого порядка изучения тем.
Лично мне кажется наиболее оптимальным путь - сначала почитывать теорию из каких-то бесплатных источников либо спизженных книжек (но глубоко забуриваться в талмуды нельзя - станет скучно и либо положшь хуй, либо потратишь сильно много времени на один только синтаксис языка). В это время нарешивать какой-нибудь codewars и codingbat (литкод тоже, но уже позже, сначала нужно научиться решать простое). И уже когда освоишься в языке, научишься писать хеллоуворлды, начинать писать проект простой со спрингом, при этом смотреть курс алишева по спрингу и letscode. И уже под конец проекта начинать подаваться во всякие помойные конторы, паралелльно доучивая сложные темы вроде многопоточки, баз данных, докера и прочего
Как это лучше сделать?Какие способы рефакторинга известны?
Хз, я его учил ещё до изучения жабы, по идее, чем раньше начнёшь - тем лучше. Английский нужен на уровне чтения документации и stackoverflow, это где-то B1 + знание терминов на английском. Хотя можно по большей части обойтись гуглтранслейтом.
>Хотели бы кроссплатформенную IDE для C++ - написали бы
Самое забавное --- такая есть (VS Code). И написана она на Typescript, лол)
Тогда и Notepad++ IDE.
И жрёт в разы меньше памяти, чем хваленая идея от жидбрейнсов. На слабых компах только в вс коде и можно программировать.
При том, что я с джава IDE это делаю и у меня по ней вопросы?
>>18549
Чет не работает.
Прекол в том, что я вот мердж начинаю делать - оно мне насыпает конфликтов. Я начинаю их решать и на полпути понимаю, что это какая-то хуита. Отменяю. Хочу просто вернуть в исходное состояние ветку. А там насрано конфликтами в коде
И я не пойму как отктить это..
Я бы просто удалил ветку локальную и стянул заново с гита, но я не могу checkout сделать на другую ветку опять же из-за этих конфликтов.
Не понимать(
Нюфаг-тред знает.
>Чет не работает.
Че пишет?
>Отменяю
Как отменяешь?
Если хочешь эффективно получать ответы на свои вопросы в интернете, заводи привычку цитировать и опсывать детально что конкретно у тебя происходит.
>Как отменяешь?
1.Мерджу ветку в master в свою
2.Появляется диалоговое окно решения конфликта (типа как на картинке)
3. Я решил часть, а потом передумал и жму "close"
4. Моя ветка подсвечивается в восклицательным знаком (есть нерешенные конфликты)
И в файлах остаются вкинуты <<<< HEEAD
~ ======
Собственно, конфликты.
А я хочу вернуть ветку к состоянию до мерджа.
>git merge - - abort
Пробовал эту команду выполнить. Ответ сейчас не могу воспроизвести, но по факту после выполнения не поменялось ничего. Опять же остались "красного" цвета файлы с нерешенными конфликтами
Хотелось бы получить верный порядок действий в таких ситуациях.
Пока только костыльно решаю чекаутом (и то со сложностями) на другую ветку, удалением нужной, которуд потом заново тяну из гита
Ну раз уж ты настаиваешь
Дак там бэкенда вообще нет. Его либо как скриптовый язык используют вместо батников или для всяких учОных, чтобы быстро посчитать. В общем, это языка для прикладников, а не для профессиональных программистов.
Байтишь меня что ли? :3
Джанга, фастапи, вакух (не мл и саенс) примерно столько же, сколько на джаве сейчас.
Что на этой джанге можно написать? Тормозной веб-сайт? Это не джава с её оптимизированной JVM, которая обгоняет на разогретом кэше даже С++.
Не подменяй тезис, няша, и не токсичь :3
Ты точно тот же анон?
Вопрос не в том, кто быстрее, и насколько тормознуты бэкенды на стэк-нейм, изначально тема была в альтернативах вката относительно количества вакух. Пайтон в этом не проигрывает. И в пайтон вкатиться проще и быстрее.
Что по поводу твоего тезиса про оптимизированность и тормознутость - это мимо, т.к. большинство бэкенда IO-bound, все упирается в ожидание ответа с бд, там не играют большой роли jvm-оптимизации.
>которая обгоняет на разогретом кэше даже С++
Это только для cpu-bound задач. Бекенд почти всегда io-bound, где всякие питоны и ноды вполне составляют конкуренцию жабе.
Когда вытеснит - тогда и приходи. А пока на джаве на порядок больше вакансий. Пересесть с джавы на котлин не сложно.
Какое там вытеснить жабу, тут некоторые логику на PL/SQL до сих пор пишут.
Слыш, ебало завалил
А что, ты предлагаешь вкладывать деньги в ленивых программистов, чтобы они валяли дурака, а потом свалили к конкуренту, а проект у тебя загнулся?
>читалка
Так это не печатный вид тогда, не?
Попробуй Spring in Action (Уоллс)
Но на счет читалки. Ты же понимаешь, что откинуться в кресле и читать книгу - это не вариант.
Надо сидеть у компа и повторять примеры из книги.
Можешь поискать и другие книги в интернетах на рутрекере
>Spring in Action
Там галопом по европам. Вроде начинает проект интернет-магазин по продаже тако, но к середине книги про него забывает. В итоге и у читателя такое же половинчатое восприятие Спринга в голове.
Я пока только 100 страниц осилил. А других книг и предложить пока не могу
Можно подробней почему? Выше вон пишут, что в пестон легче вкотиться, в пхп и жс мне кажется тоже.
В РФ джанга проигрывает спрингу в 3 раза по количеству вакансий, при резюме в полтора раза больше у джанги. На хх все есть.
Вот когда будет о том, как въебать пивка во время работы или вместо ее - тогда и приходи.
Да в любой популярный язык легко вкатиться, если это не C++.
Без понятия. Даже не знаю где мониторить.
Пошёл нахуй, петухлинщик.
Вставляю в pom зависимость:
<!-- https://mvnrepository.com/artifact/org.springframework.security.oauth.boot/spring-security-oauth2-autoconfigure -->
<dependency>
<groupId>org.springframework.security.oauth.boot</groupId>
<artifactId>spring-security-oauth2-autoconfigure</artifactId>
</dependency>
она транзитивно вызывает:
spring-security-oauth2,
а та вызывает:
spring-security-core.
так вот, если мне нужно получить определенную версию spring-security-core, то я могу ее как-то определить?
Или я только версией изначальной зависимостью могу управлять?
А на C# то проще? Ну проще на сихшарпе, чел? На APS.NET много инфы? Написал приложение?
Ты в итоге бросил изучение спринга?
Почему бы курсы не попробовать вместо книг, раз книги не дают выхлопа?
Пробовал?
Ничего путёвого я не нашёл. Везде унылые лекторы зачитывают презенташку. Это как книга Козьминой по Спрингу 5 - куча теории и ноль практики, в голове ничего не остаётся.
Стек технологий - это самое лёгкое, с чем столкнёшься в энтерпрайзе. Каждый день ебут предметной областью, хуёво расписанными задачами уровня "хочу, чтобы была возможность делать Х, придумайте сами, как удобнее", горящими сроками, проёбаными метриками и странными смежниками со своими собственными интересами. Всю эту хуйню невозможно загуглить, невозможно прочитать в документации, приходится тыкаться наугад. И язык как-то уходит на второй план, реально осознаёшь, что те же задачи не хуже решаются на коболе.
бамп
Ну для джунов в норм местах это не совсем так. Джунам обычно мидлы-сеньки-тимлиды откусывают понятные куски и расписывают таски. И ответственность перед бизнес аналитиками за постановку тоже могут на себя взять.
В хороших местах скорее - да. В местах, уровня сбера - читать со словарем. Но галеры получше, с заказчиками на мировой рынок, где нужен был норм инглиш - ушли из рф.
Как там в банках потехнологичнее, типа тинька или в российских больших продуктах - хз.
Как освоить микросервисы, кафку/раббит и кубернетис, чтобы не валится на собесах? На проекте распределенный монолит без очередей.
Один раз скачал шаблон со start.spring.io и теперь его просто копирую
Как понять секрет тимлида, когда он буквально за несколько часов выкатывает пулл-реквест с новым сервисом и там уже описаны все ямл файлы и прочие спрингбут приложение сконфигрурированы? Я у него спрашивал, а он только ухмыляется в ответ.
Рука набита у чувака, вот и все. Приходит с опытом.
А что не так, пояснишь?
Есть плагин с синтаксисом application.yaml
Двачую. По факту в энтерпрайзе погрязнешь рано или поздно во всех особенностях бизнес требований, что и похуй будет как-то на 1С ты пишешь или на богоподобном дотнете.
>3. Я решил часть, а потом передумал и жму "close"
А ты уверен что идейка делает аборт мержа на close? Я --- нет.
>Ответ сейчас не могу воспроизвести
Нужен ответ, без ответа хз че у тебя там случилось. Воспроизводи.
bump
Я вкатунец и не понимаю ООП, мне таки нужно каждый раз пилить свой собственный тип под сущность в коде или можно обходиться примитивами? Типо строка имейл vs собственный класс Email. Я думаю памяти будет жрать это пиздец как
Если тебе нужно парсить емейлы, есть смысл создавать отдельную сущность. Поля сущности будут соответствовать частям адреса.
А если ты тупо везде используешь адрес как единое целое, хватит и строк.
Ну поскольку большинство кодерков - дебилы, не способные работать с функциями, так что им обязательно надо видеть осязаемые предметы, им придумали ООП.
Прочитай книгу Философия Java и поймёшь
>Типо строка имейл vs собственный класс Email
Дженериково на вопрос не ответить. В чем ты видишь профит от класса Email?
Если "кто-то считает что так правильно", но нет. Ничто не правильно, все можно, все кто считают иначе пусть обоснуют или идут нахуй.
Если для типобезопасности, чтобы в вызовы оперирующие имейлами нельзя было подсовывать обычные строки, то тут сложнее: в нормальных языках понятие тип не тождественно понятию класс, и типов ты можешь объявить хоть миллион без ущерба перформансу. В джаве --- нет, но даже в этом случае импакт на перформанс и потребление памяти скорее всего будет не такой драматичный, какой ты малюешь. Какбэ камон --- париться об аллокации лишнего обьектика в языке, где есть боксинг? Забей
То ли дело обернуть ввод емейла в пердункцию с побочками и пердеть что ты дохуя алонзо черч
У меня 7 месяцев коммерческого опыта, нежели у тупорылого вкатунишки обоссанца без высшего заводчанина хуесоса хеллоувордера. У меня и вышка есть айтишная, я блядь ахуенен
Ну кроме 7 месяцев тебе похвастаться нечем.
А у заводчан, кстати, тоже сейчас вышки не хуже твоей. Какой-нибудь инженер-радиоэлектронщик наверняка в универе изучал и математику и программирование. У меня вот у отца коллега был, который мне в детстве давал дискетки с компиляторами Паскаля, Си. Кучу литературы по программированию мне просто подарил.
Так что зря ты выпендриваешься. Заводчане не тупее тебя.
Добей до года-двух, потом станешь более перспективным кандидатом. Хотя сейчас и мидлов уже не особо жалуют: спрос упал сильно.
bump
А если у меня примерно только 3 курса вышки инжинерной с матешами, мне тоже норм или обоссут на собесах?
У меня про вышку вообще не спрашивали, просто про опыт написания пет проджектов, которые-таки зачем-то оказались нужны, хоть их никто и не смотрел и уж тем более не запускал.
Как я понял, что могут забраковать HR при просмотре резюме, а на собесе всё зависит от личной подготовки, на корочки там уже пофиг.
Мне звонила как-то хрюшка, чтоб позвать на собес и так получилось, что я не всеми технологиями владел, которые она назвала и я честно об этом сказал, на что она ответила мол неважно, главное, что вышка есть, вот и думай теперь сам.
>>20523
>>20674
Мне наоборот предлагают проекты без очередей сообщений, кафки. Иногда попадаются микросервисы. Какие-то специфичные проекты подсовывают, то с инфрой что-то связанное, либо вообще не джава, а какой-нибудь гоуленг с питоном один раз на собеседовании выяснилось, что им нужны люди с опытом в расте. В итоге занимаюсь каким-то помойным легаси 10 летней давности, так как нет опыта в новомодных технологиях.
>>20674
>Зачем нужна кафка/микросервисы?
Потому что без них тяжело найти хорошую работу.
Ты бля просто книжку прочитал и все?
Ты хоть конспектировал что прочитал?
Если ты ее как художку прочитал и ничего после прочтения не осталось, то естественно у тебя в мозгу инфы полезной не будет
И че на них купить? Пирожок в азбуке вкуса?
Прихожу в офис (не люблю удалёнку), сажусь, пишу код, ставлю на фон созвоны, там 40 человек что-то по очереди бубнят. Некоторые созвоны послушать в фоне не получается, надо что-то говорить, код хуй попишешь. Иногда приходится отвлекаться на переписки. Возвращаюсь домой, смотрю кино и аниме, прохожу дейлики в геншине, шитпостю на любимом двачике, клепаю пет-проекты на нескольких языках.
Различные перегрузки Runtime.getRuntime().exec(...) принимают либо массив строк, либо одну строку. Однострочные перегрузки exec() размечают строку в массив аргументов перед передачей массива строк в одну из перегрузок exec(), которая принимает массив строк. С другой стороны, конструкторы ProcessBuilder принимают только массив строк varargs или список строк, где предполагается, что каждая строка в массиве или списке является отдельным аргументом. В любом случае полученные аргументы объединяются в строку, которая передается операционной системе для выполнения.
https://mvnrepository.com/artifact/org.springframework/spring-context/5.1.4.RELEASE
Скачал зависимость, а она пишет, что 11 джаву не поддерживает. Почему сразу нельзя было написать? Как я догадаться должен?
Он думает тут как в шарпах - один вендор и от него все пакетные менеджеры и фреймворки
Ну частично наброс справедливый тащемто. Я на днях искал нужную версию Jooq под джаву-восьмерку таким же методом перебора.
Я и пишу на шарпе. Радуюсь громко.
>>21324
Разве спринг - это бедная индийская корпорация без бюджета которая не способна в реализацию html кода на которой будет написаны поддерживаемые версии джавы? Сам спринг же на какой-то версии джавы пишется, так в чем проблема эту версию указать в штмл на страничке доков? У нас вон тоже есть, буквально бедный нищий индийский фреймворк abp.io, его юзает дай бог 10000 человек, однако даже там осилили в документации к версии.
>в чем проблема эту версию указать в штмл на страничке доков
При чем тут бедность. Причин мб дохуя, выбирай на свой вкус. Начиная от того что спрингокульт --- долбоебы (вполне вероятная причина), продролжая тем, что всем похуй, ибо обратная совместимость предполагается по умолчанию (да и вообще, кто ж знал что ты возьмешь какой то древний релиз, бесплатная поддержка которого уже кончилась https://spring.io/projects/spring-framework#support . Линейка 5.3 уже поддерживает и восьмерку, и 11ю https://github.com/spring-projects/spring-framework/wiki/Spring-Framework-Versions ) и заканчивая тем, что спрингоподелие настолько монструозно, что даже если б эта инфа была в доках, не факт что ты б нашел ее с наскоку.
Спасибо!
Все почему-то пишут, что надо запускать:
java -cp target/app.jar mam.ya.dolboeb.LinkedList
Но ни фига не работает, пишет, что не находит класс, а через mvn exec работает, хотя класс тот же самый.
В общем, в любом случае через VS Code не реально программировать. Слишком много надо вручную набирать, держать в голове всю эту шелуху с командами, ручками выстраивать проект.
Нет.
Еблан? Еблан. Ты б хотя бы посмотрел их "уровень преподавания", скачав курс с торрента, прежде чем деньги инфоцыганам нести. Впрочем, пока есть такие скуфы как ты, вкатиться всё еще реально
Да, я сразу сеньором устроился. Иногда скучаю по работе в такси
До этого были простые круды.
Сложнее того, что ты описал, не приходится. Обычно простые круды, а всякие джойны и оконные функции для отчётов.
Бывает время от времени. Мне как то раз надо было написать че-то типа круда поверх какбэ реляционной БД, но с довольно всратой денормализованной легаси схемой данных, которую нельзя было менять. Там всякое приходилось запрашивать.
Если запускаю всё на одном хосте, всё подключается :/
IP-адрес на сервере я указываю внутренний хоста, 192.168.0.136 например. Порт - любой. В чем может быть проблема ?
Потому что ты указал серверу слушать 127.0.0.1 (licalhost) вместо 0.0.0.0.
Жук. Рекорды руками не пишу - генерирую.
Нет.
Вместо First - FirstTemplate, вместо Second - FirstPlaceholders. Потом билдишь First и подставляешь ручками. JSON-объекты в Java - это только Json объекты, не более. Всё остальное, более высокоуровневое, будь добр сам писать. Это основы ООП, блядь!
Да.
>Попробуй идею
Пробовал. Тормозит безбожно. К тому же надо покупать, так как в бесплатной версии нет поддержки веба.
Могут. Вокруг больше дебилов, чем ты думаешь.
Лентяи, хули. Project Zomboid, к примеру, тоже на джаве написан, но весь рантайм и класспаф устанавливается неявно вместе с игрой.
Вот мавен взять, да, я всегда использовал его на автомате, там подключил депендеси, mvn clean package и забрал джарку. Но блядь - я не знал как писать плагины для мавена, как создать свой собственный архетип, а не использовать дефолтные! Я еблан, вдруг это мне понадобилось бы, а я это и не знал.
В общем, я ебал осознание того, сколько еще нужно выдрочить от корки до корки. Думаю дальше буду сервлеты осознавать. Иначе как я буду круды писать без знания че там под капотом происходит. Пиздец.
Тебе нужен dependencyManagement
https://stackoverflow.com/questions/9119055/how-to-exclude-maven-dependencies
Там конкретно укажешь версию
> я ебал тыщу технологий надо выучить
А в го будешь учить тысячу велосипедов, которые в каждом проекте свои, не стандартизованные, без документации и с тонной скрытых багов.
> я не знал как писать плагины для мавена, как создать свой собственный архетип, а не использовать дефолтные!
Да никто мавен не знает глубже подключения зависимостей, с остальными технологиями аналогично. Многие опытные разрабы даже не помнят, как создать проект с нуля. Я вообще на днях объяснял тимлиду, как работает локальный репозиторий мавена. Никто не требует постоянно держать в голове все тонкости всего стека технологий, всё изучается на уровне, достаточном для решения большинства типичных задач, а если понадобилась какая-то залупа типа написания своих архетипов, разраб садится и читает доку. Толку от изучения тонкостей, если их забываешь через пару месяцев из-за неиспользования?
Хули ты паникуешь? Надумал себе экзистенциальный кризис, истеричка. Куча анальников живут идиотами всю свою жизнь, знай клепают свои дурацкие анноташки в зазубренных местах своих крудов. Не каждый из них вообще знает что такое сервлет. Наоборот скажи себе спасибо что пришел к этому осознанию и интересуешься тем, что под капотом у всяких штук происходит, так хоть перспектива есть что человеком станешь.
Как понадобится написать мавен плагин --- тогда нагуглишь, выучишься да напишешь.
Юзай эксклюды: https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html#dependency-exclusions
На оауфовой зависимости эксклюдь сисурити-коре, а потом ниже явно обьявляй сисурити-коре нужной версии.
>Я еблан, вдруг это мне понадобилось бы, а я это и не знал.
Шиза какая. А еще ты наверно не знал и половины флагов компилятора и вм джавы. Но это же основы, как же т без этого бы жил.
По факту я например 2 года назад читал про архетипы и кастомный плагин как написать. А сейчас я этого не помню. Вообще. Только что их можно написать.
Тока не сильно увлекайся, а то потом охуеешь какую нить несовместимость в зависимостях искать.
Оу, i вроде understood дис shit
Выбрасываю то что оно само подставляет и явно объявляю сам, да? Да
>>22615
Ну какбэ прекол в том, что мне это надо из-за vulnerabilities и требований сесурити.
Придется потыкать разные версии разных всяких зависимостей и смотреть шобы ниче не падало.
Т - творческая работа
Спасибо, Анон
>Выбрасываю то что оно само подставляет и явно объявляю сам, да?
Да. А прогресс того что получилось в итоге можешь чекать через mvn dependency:tree
>mvn dependency:tree
Угу, этой штукой уже научился орудовать
Интересно, а не запилили ли какой-то универсальный чекер совместимости версий разных зависимостей?
Например, я говорю ему че за зависимости мне нужны в проекте, а он выдает последние стабильные версии (еще и без с минимумом уязвимостей), которые стакаются с адекватными версиями остальных зависимостей?
много хочу наверно, да?
Зря не читал, мы тут только это в основном и обсуждаем обычно каждый день
очевидный hh, наверно?
120+ я думаю
Да, ты прав.
Да, летает на некропека.
Она частично на сишарпе написана
Но если метод будет вызываться по хттп то по любому пройдет через контроллер,где тв можешь указать метод на обновление
Ну а аннотация выше позволяет делать этот ваш патч в реляционную бд через jpa.
Ясен жуй нужен спринг кор,скоупы,прокси,лайфсайкл это база
Жги с порога сразу про геев в бассейне, и про кальмара. Не давай опомниться, бери нахрапом.
На вопрос что такое полиморфизм отвечу что вопрос напомнил анекдот про порутчика ржевского
Как трахать в попку тимлида. Ну или он тебя, там как пойдет, сами в общем разберетесь
Кекус, двум мужикам понадобилось пятьдесят лет опыта в индустрии на двоих чтобы понять что дядюшка Боб им серит в рот. Мне это стало очевидно с первых пары страниц clean code с опытом Lab1 за плечами. А многие так и до сих пор не уймутся.
Ну поясни тогда ты - чем руководствуешься при проектировании? Или ты из тех мартышек что затыкают уши и считают что говнокод это благо?
Это копия, сохраненная 14 января 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.