Вы видите копию треда, сохраненную 15 октября 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Что такое Java?
Java - язык программирования с классами (aka объектно ориентированный), где нужно явно указывать тип объявляемых переменных (aka со строгой типизацией).
Заебись. А что ещё делает Java лучшим языком программирования?
- На Java написано столько всего, что любая твоя невообразимая идея уже существует в виде библиотеки, которую можно скочать и юзать
- Java - мультипарадигменный язык, тут можно писать в любом стиле, который тебе вздумается, даже к памяти можно получить доступ через Unsafe, но, при этом спроектирован язык для того, чтобы на нём писали в ОО-стиле.
- От прошлого пункта плавно перешли к отличной проработке языка - язык с самого начала задумывался как язык для ООП и многопоточности, благодаря чему писать чистокод на Java легче лёгкого.
- Java - относительно молодой язык, который до сих пор активно развивается жидами из Oracle, при этом почти неполживо опенсорсно.
- Java следует принципу write once во всём. Java никогда не ломает обратную совместимость - твой код, написанный на Java 1.2 будет работать на Java 18 - и не зависит от платформы, являя из себя единственный полностью кроссплатформенный язык с кроссплатформенной экосистемой (если не считать языков-паразитов на JVM).
Тред по жабе на гитхабе: https://github.com/java2ch/java-thread
Вики по вкатыванию в джаву: https://github.com/java2ch/java-thread/wiki
Предыдущий: >>2395740 (OP)
Долбоёб, перекат после 1000 постов. Репорт.
Вкатуны нужны.
Это не мем..
ПЕРЕКАТ >>2395740 (OP)
ПЕРЕКАТ >>2395740 (OP)
ПЕРЕКАТ >>2395740 (OP)
ПЕРЕКАТ >>2395740 (OP)
ПЕРЕКАТ >>2395740 (OP)
Да хоть с 3. Главное чтобы мог грамотно в кафку пукать и за ООП пояснить мог.
другой вопрос осилит ли, раз вышку не осилил
Есть три вида работника.
Менеджер
Офисные работник
ДИректор
Все они выполняют свою работу, но делают это по своему.
То есть можно сделать общий абстрактный класс Работник с методом makeAction() и от него наследовать три класса Менеджер, Офисный и Директор и переопределить метод makeAction().
Но проблема в том, что каждый работник еще по разному проводит перерыв. Один может пообедать, другой пойти на прогулку, а третий позаниматься спортом. То есть в классе Работник есть еще метод общий метод takeBreak(). Но проблема в том, что нужно сделать Менеджера, который обедает, Менеджера, который прогуливается, Менеджера, который занимается спортом. Тоже самое с Офисным и Директором. Как это реализовать, желательно с наименьшим кодом?
Не буду же я делать еще три класса Менеджер, который обедает, Менеджер, который прогуливается, Менеджер, который занимается спортом и т.д.
Спасибо.
То есть нужно первый и второй метод переопределить три раза. А так же нужно создать классы, где каждый переопределенный метод встречаетс с другим переопределенными методом
Сейчас вот изучаю кафку. И пукать в кафку(продюсить сообщения) сильно легче, чем эти пуки нюхать(писать консьюмеры).
Задача хуйня, ты долбоеб. Но вообще, в прошлом треде тебе ответили +- нормально.
а я читал клин код вчера и там говорят, что
1) возвращать нуллы нельзя
2) называть переменную cond - по долбоебски
380x286, 0:27
>НЕ ГОРИТ, ПОВТОРЯЮ, НЕ ГОРИТ
Джава-долбоебы, зачем вы так пытаетесь обосрать шарп в вашей шапке? Вам настолько обидно что шарпик всё больше и больше занимает рыночек где раньше господствовала джава?
Я попрошу, чтобы теперь в каждом оп-посте тебя задевали, очень уж забавно ты реагируешь
Не задевай мои чувства пожалуйста
Тут соглы, надо сразу кидать чекед эксепшен.
Спасибо
>>01046
Но есть еще условие у этой задачи. Нужно провести негативное тестирование и использовать работника не по назначению.
То есть Офисный работник должен попробовать выполнить работу Менеджера. Я не совсем понимаю как это реализовать, ведь у всех метод будет называться makeAction().
Есть мысль добавить в функцию makeAction() параметр String, и в самой функции провести проверку.
Типа Офисному работнику makeAction передавать строку "paper" и если он ее получит, тогда Офисный работник выполнит makeAction и возвратит строку "Выполнено". Иначе, если передать Офисному сотруднику другую строку, то makeAction выведет строку Офисный работник используется не по назначению.
Ну и assertEquals использовать, чтобы провести негативную проверку. А можно как то получше сделать негативную проверку "использование работника не по назначению"?
888x498, 0:05
>>01228
>зашел, посмеялся с того, как шарпобояре рентфри в головах подорвавшихся жабоскуфичей, скинул реакшн видос
>подрывы
Ору, маняпроекции стронг
Легитимный перекат после 2000 постов, а это какой-то залетный перекатил
У тебя не сотрудники отличаются, а их работы. Разделяешь их на два интерфейса и все твои надуманные проблемы сами собой разрешаются.
Сам факт того, что ты задаёшь такой вопрос, уже означает, что перекат нихуя не легитимный. Но хули делать, если не репортит никто.
Это шарперы и перекатили, им недавно жаберы перекатывали.
А как это поможет?
Мне нужно будет создать 9 классов и каждому классу переопределить два метода? Или как? extends же можно только для одного класса сделать.
Мост вроде с этой задачей справляется или нужно по другому?
Хуя память золотой рыбы.
Такая ситуация, я программирую на GWT ( да-да в 2022 году). Зп 45 тысяч, повышений особо не предвидется. Что делать? Сидеть учить Spring и возьмут ли на работу, сейчас же кризис, а у меня в графе опыт будет клепал кнопки на GWT. Или забить, вообще что-то учить после работы неохота
Никто тебе не скажет насчет рынка джунов через 2-6 месяцев, которые тебе нужны для изучения спринга.
Базюлинами хотя бы на уровне jdbc умеешь пользоваться?
ХТТП?
Как у тебя с жабакором? Я бы в любом случае попытался.
Только GWT, или со всем сопутствующим Java EE-стеком работал? Если работал, то так и напиши. Все понимают, что они со спрингом во многом аналогичны, а научиться писать @Autowired вместо @Inject и @EJB ты сможешь быстро. На модные микросервисы сходу вряд ли возьмут, то на монолит на четвёртом спринге вполне могут. Ну и на собесах прежде всего спрашивают за кор, так что вспоминаешь все методы класса Object и иерархию эксепшенов.
Нет только GWT если бы Java EE было бы лучше
Java Core скачал курс буду подучивать
Спасибо, пошел учить
Нет, это в месяц рублей
И тот и другой работает через рефлексию. И тот и другой будет скачала искать сетер\гетер.
вирусы так просто не удалить
От имени поля
Нужно, чтобы читающий тред мог отслеживать изменения в этом объекте. Ну то есть каким-то образом подписаться на изменения объекта, чтобы когда пишущий тред менял определенное поле, в читающем треде вызывался колбек.
Как такое в жабе можно сделать? Суть в том, что я не хочу в цикле while (true) постоянно обращаться в читающем треде к полю объекта, хочу чтобы все асинхронно-неблокирующе без лишних бесконечных циклов произошло.
Ну можно интерфейс сделать с одним методом, можно через Consumer<Pole>.
Паттерн observer гугли в общем
Если тебе нужна общая очередь проще всего через LinkedBlockingDeque сделать. Но это циклы, а без циклов, асинхронщиной с синхронизацией ты скорее на дедлок нарвешься в итоге и сломаешь голову. Вообще специфичная хуйня, без деталей что ты делаешь не подсказать.
public void setAnus(Anus anus) {
//throw event to any event bus//
this.anus = anus;
}
public class MyListener implements Listener {
@Restricted(AnusChangeEvent.class)
public void handle(Event event) {
//your logic//
}
https://pastebin.com/Kx8RncXC
Что-то вот такое хочу сделать. Через блокирующуюся очередь я примерно понял как сообщения передавать, только как без лишней ебли и циклов сделать вызов нужного колбека в зависимости от содержания сообщения?
Почему 0 производительности? Как тогда по другому сообщения пересылают нормальные люди?
То есть 0 производительности из-за рефлекшена будет? Ну пусть даже и так, мне сама концепция пересылки сообщений и ивентов интересует. Как самому написать простой ивент бас?
Ну это не так просто, задача на часов 10, чтоб всё по красоте было. Лучше поищи или если не найдёшь найди оправдание для траты 10 часов.
Только не ебу, асинхронный он или нет
Так у тебя без цикла второго потока не будет существовать почти сразу после вызова thread2.start(). Все колбэки в onMessage будут вызваны в том потоке, который диспатчит сообщения листенерам в MessageBus. То есть который ты дал однопоточный весь.
Синхронизация для даунов. Синхронизировать нельзя.
Я предполагаю, что onMessage будет каким-то образом ждать пока прилетит сообщение. Типо если messageBus пустой, то поток просто выключится сам и не будет загружать CPU, а когда прилетит - то автоматически включится и дернет нужную фунцию.
Я хочу с нуля разобраться во всей этой реактивной магии, а не просто rxЖабу дергать
Поток умирает после завершения метода run. У тебя он завершается сразу после регистрации всех колбэков.
Можешь вызвать принты с Thread.currentThread().getId() и убедится что у тебя все вызывает в том потоке, который кладет сообщение в очередь.
> поток просто выключится сам и не будет загружать CPU
Юзай LinkedBlockingDeque с циклами, если хочешь чтобы вызов был реально в другом потоке. Там блокировка без busy waiting и эффективная синхронизация под капотом.
Вот реактор именно так и работает - пул из пары потоков и цикл дергающий очередь.
Какая тут магия блядь?
Этап 1. Кто то бросает ивент в ивентовый автобус
Этап 2. Очкобус ищет подписавшиеся на него листенеры в хешмапе листенеров
Этап 3. Очкобус вызывает метод у подписавшегося листенера
Парам-парам-пам. ВСЁ!
еблан
Просто учись по постам из треда лоол
Джавараша хватит и без книг. Там есть все что нужно жля начала. После только спринг учить, попутно пиля пет.
Лучше hyperskills если денег не жалко. Там задачки лучше, свежее и комьюнити менее тупое. И нет кривляний с комиксами.
Сейчас мой алгоритм по изучению новой технологии:
Баелдунг -> более частный случай, чем там описано -> стековерфлоу -> на 3/4 ответы помогли, но часть - бред или устарело -> дока -> просрав время и прочитав 70% доки, где хоть как то могла упоминаться моя проблема -> поиск по гитхабу по ключевым словам -> пробрался среди кучи говен форкнутых хеловордов -> случайна наткнулся на видос индуса/статью на медиуме/нонейм сайте, ища по другим ключевым словам нашел решение которое легче, изящнее и почти полностью подходило к моему кейсу.
Вместо дюка нюкема.
Надо не с мурзилки начинать, а с правильного запроса в гугле, который выведет на правильную мурзилку.
Не согласен. Когда ты ноль в чем то, то даже не сможешь составить конкретный запрос. А на баелдунге можно представление на уровне хеловорда получить на 2-3 странички.
Баелдунг на пендосском написан, хуйня.
Гораздо лучше думать своей головой, чем спрашивать у кого то что то в таком гадюшнике, как стаковерфлоу. Там сидят чсв ебанаты, которые врят ли тебе помогут. Сколько спрашивал там, и тут, тут гораздо умнее народ решения предлагает и универсальнее. А чтобы не генерировать велосипеды можно поискать либу какую то.
Так вопросы типа:
- как не самая популярная функция реализована в библиотеке хуйня-ненейм
- как подружить библиотеки хуйня-нейм и пиздула-нейм.
Обычно там кто-то это уже задал и ответ нормальный(и чаще всего ответ есть в доке но он сформулирован так, что найдешь только прочитав половину доки). Но иногда бывают и хаки с кишочками библиотек, которых нет в доке.
Но вот у меня бобануло на стековерфлоу от вопросов по спрингкафке. Там везде отвечает техлид этой ебучей спринг-кафки и всем хамит и иногда отвечает хуйню.
>Там везде отвечает техлид этой ебучей спринг-кафки и всем хамит и иногда отвечает хуйню.
пруф
https://stackoverflow.com/users/1240763/gary-russell
вот этот чел. ну а по пруфам, я не нашел сходу, у него тысячи ответов по этой залупе. Ну в 2-3 местах видел, как он грубо людям отвечал в комментах на его ответы, когда его переспрашвали.
А про хуйню там вообще был один единственный вопрос был.
Там спросили, мол чел, как мне изолировать тесты на @KafkaListener. А он и отвечает - создавай топик на каждый тест. А потом я читаю у него же в другом ответе, что контейнер этих листнеров, который управляет транзакцией нельзя переназначить на другой топик.
>Там спросили, мол чел, как мне изолировать тесты на @KafkaListener. А он и отвечает - создавай топик на каждый тест. А потом я читаю у него же в другом ответе, что контейнер этих листнеров, который управляет транзакцией нельзя переназначить на другой топик.
Хороший кстати вопрос. Неоднократно сталкивался с тем, что в тесте прилетало сообщение от другого теста и оба падали. И это без параллельного выполнения даже.
>который управляет жизненным циклом консьюмера
Извиняюсь. Отвлекся, а потом транзакции приплел как-то.
И как ты решал этот вопрос?
Я нашел три стула, если в контексте кафки, без спринга:
- Как сказал дед, создавать новый топик под каждый тест. И для консьюмера без спринговских контейнеров все норм.
- Удалять в рантайме через Admin api топик в afterEach и создавать его в BeforeEach. У меня не получилось через спринговую обертку сделать. Не уверен, что можно в нативном кафка клиенте сделать. Гэри Рассел как раз советовал этого не делать, уже не помню почему.
- Пересоздавать тестовый брокер. Ну типа перегружать тестконтейнер(это вообще пиздец, если там штук 5-7 тестов на метод-листнер). Или с EmbeddedKafkaBroker тестовый класс аннотировать @DirtiesContect(AFTER_EACH_TEST_METHOD), который перегружает весь поднятый спринговый контекст, что тоже на самом деле долго.
Пока на последнем остановился с встроенным спринговым брокером.
Вся суть жабы.
Ага, а как я проверю, что необработанное после эксепшена сообщение после нужного числа ретраев в dlt полетело? Как я фильтр, по которому я отбрасываю 95% сообщений топика и беру только то, что мне надо? А я потом еще ретрай топики прикручу, обработчики ошибок десериализации и еще чего-нибудь.
Да и в методе @KafkaListener у меня тестировать нечего - только вызов сервиса - KafkaMessageHandler и логирование.
Ну и сам сервис-хенлер тестировать это вообще хуйня, там прям классический юнит.
А тут кроме изоляцией еще сиди угадывай как авейты правильно подобрать и сиди ищи ассерты и матчеры.
Я реально потратил на эти тесты больше времени, чем на саму фичу. Причем в этот раз в разы.
Ну а мой тимлид так не считает. Я реально прошерстил кучу тестов на кафкалистнер. И везде тестируют только один удачный кейс.
В следующем сервисе мне еще и батчевую обработку нужно будет прикрутить.
А на этой неделе нужно идти к автору продюсера и говорить, что он продюсер неправильно написал. Там нет очередности отправки, и отправка "бросил и забыл", даже без логирования незаписанных в топик.
Аргументация типа: мок-мвс мы же тестируем? А контроллеры это тоже механизмы спринга.
ыыы хуй саси
Так тестируем сами классы контроллеров с вызовом логики, а не то, как спринг с ними работает.
Ладно, теперь от кафка тестов буду отбиваться, скажу что мне в чатике по кафке так сказали. Буду только на сами сервисы-хендлеры писать.
На вопрос уверен ли я что это так работает буду отвечать, что так в доке написано и что потыкав на дев окружении все пашет.
чувак, классная подборка. А есть чет подобное, чтобы CQRS/SAGA копнуть?
Аноны, почему паттерн Мост использует интерфейсы, а не абстрактные классы? Разве интерфейсы нужны не для того, чтобы реализовать множественное наследование?
https://javarush.ru/groups/posts/2570-znakomstvo-s-patternom-proektirovanija-bridge
Короче, так как нам не нужно передать поведение(свойства), используем интерфейсы?
Прямоугольник с кружочком внутри должен наследоваться от прямоугольника. Наследование квадрата от прямоугольника это наследование машины от человека
Неправильно! Прямоугольник от квадрата, потому что можно добавить ещё одну сторону.
Класс Rectangle обозначает и прямоугольник и квадрат. Квадрат создается через фабричный метод square с одним параметром.
Умно.
Любой квадрат является прямоугольником. Вообще любой. Не существует квадратов, которые не были бы прямоугольниками.
Не любой прямоугольник является квадратом. Я с лёгкостью приведу пример фигуры, которая прямоугольник, но не квадрат.
Бля, уже был срач про это в 2019 году в этом самом треде.
А как положить этот ректангл в список к квадратам?
Зависит от того, в каком контексте рассматриваются понятия "квадрат" и "прямоугольник" в программе. Но на практике, почти что всегда наследование одного от другого неверно. Вместо этого оба они обычно наследуются от "фигуры".
Устроился в контору, работаем на забугорного барина. Я один единственный на jave, остальные джс и пхпшники. Пилю на спринге херню микросервисами. 7ми этажжные sql запросы через jdbcTemplate. Зачем я там нужен не понимаю.... Вообщем вся боль что орм использовать не могу.
Внимание вопрос: есть ли какая библиотека для автоматического мапинга var foo = jdbcTemplate.queryForObject(sql) ???
про rowMapper не надо. У меня куча запросов на 20+ полей и каждый раз писать свой маппер такое себе.
Я вижу это как доп аннотация в класс сущности\дто на каждoе поле.
В принципе это легко запилить за несколько часов, но зачем если можно потратить часов 10 на гугл?
Jooq?
>Вообщем вся боль что орм использовать не могу.
дурачок. В орм тебе эти семиэтажные запросы придется имитировать и делать хуки для их получения. А тут просто пишешь без лишних движений и всё работает.
И один раз написать маппер на 20 полей это много? Сколько это по времени? 10 минут?
Это каким надо быть долбоебом, чтобы писать такой код?
Да.
Объектно-ориентированным.
Уноси свою нечитаемую петухлиновскую хуйню нахуй, пидарас ебаный.
P.S-Hibernate
Ну кресты это вполне реальность, если из моего Мухосранска сьебать в нормальное место.
1280x720, 0:16
Я массовые увольнения ещё в прошлом году предсказывал, но все считали, что я их троллю и не верили мне.
Благодари жизнь, что не дала тебе поесть говна.
Та же хуйня, хотел кресты, но из страха, что долго буду искать работу, в итоге вкатился в эту ебучую жабу
Это было очевидно, 100500 курсов от инфоцыган и как результат - напечатование кода теперь не нужно даже за еду всего за пару лет. Тюльпанная лихорадка as is
Это не работает для меня. Я пишу URL path = this.getClass.getResources("путь к файлу");
А потом куда мне надо вот так пишу Paths.get(path.toURI()).toFile();
И это не работает !
Конечно не работает, в пути нет инфы как его интерпретировать, а в юрл есть.
Блин, жалко что не работает.
Без проблем, но позже.
мужская феминистка
когда шпион бумага вытирать ненастоящая жопа убедиться что вытирать жопу вызван(1 раз)
когда срешь мимо тестовый унитаз убедиться что пол обкакали
>А я специально выбрал джаву, потому что С++ устарел.
Обосрался. А джава не устарела по твоему?
Нет.
Каллбек давай.
Всё так.
Джава как Бенджамин Баттон. Только не молодеет.
Жиды и сионисты, узнали, согласны?
бобов наверни
Что за джейва? Тред про Яву.
Существует ли на Java интересная работа?
Что ты подразумеваешь под интересной работой? Кому-то и в жопу ебаться интересно.
В чём устаревание заключилось?
Надеюсь тут не начнётся курение тематических сигарет и езда на тематических мотоциклах
Java проект Gradle выводил кракозябры, я в файле build.gradle написал
compileJava.options.encoding = 'UTF-8'
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
и в файлых, которые находятся в папке test перестали выводится кракозябры, но ����� ������� выводятся в файлах, которые находятся в папке src. Почему так, аноны?
Еще когда запускаю файлы, которые находятся в папке src, выводится ошибка
Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
А в папке test все нормально. Может быть такое, что настройки не действуют в папке src?
Лишь бы про MSBuild отвечали.
Нет. Гоняешь жсоны с фронта в бд и обратно, периодически попукивая в кафку/кролика
Src - это общая папка, я ошибся. В ней есть папка main и test. Test нормально работает, как и зависимости JUnit, а main нет.
>>04097
Сфоркнул их тестовое, склонировал на комп. Там 5 задач, 4 нужно сделать в папке test, а пятое, по логике, в main.
Я делал задачи в test, там выводили кракозябры, я добавил grandlr.build текст, который привел в первом посте, кракозябры исчезли.
Пятое задание я хотел выполнить в main, но вместо текста �. Потом хотел импортировать junit для проверки, в grandle он есть, но не получается. Как я понял, grandle распространяется на папку test, а мне нужно, чтобы и на папку main он действовал. Либо другой способ как intelij сделать так, чтобы он не выводил кракозябры
Программирование на тематическом языке курильщика.
А где существует?
Для крудомакаки нет
Протектед = приват. Наследовать нельзя.
Наследовать можно только если у тебя специфичная задача и только от абстрактных классов, тогда надо думать что ставить в каждом случае.
Если я даю доступ к полю при помощи функции, но не даю возможность изменять поле, то это инкапсуляция? Или мне обязательно давать возможность изменять поле?
960x1706, 0:07
Инкапсуляция - это когда методу, который использует твой класс, насрать, что внутри него есть какие-то поля и внутренние методы, он с данными работает через интерфейс и не знает, обращается ли твой класс к своим полям или вообще лезет в базу или по http в сторонний сервис.
Посмотри на бугаенко, если будешь думать о такой хуйне станешь как он.
Многопоточность можно тоже реализовать, но полноценную только если ивенты будут неизменяемыми. Неполноценную многопоточность, но всё равно достаточно годную с изменяемыми ивентами можно реализовать через последовательную обработку конкретных ивентов.
Так юнит тесты это как раз для смузихлёбов-крудошлёпов, настоящие деды никогда не пишут это говно.
>крудошлёпов
Чё там тестировать вообще?
Своп ЖСОНов?
Наркоманы штоле?
Unit тестирование вижу в пожилых вакухах госзалуп, где 3+лет опыта и 70к зп, приличные господа и про интеграционное только на скрине рассказывают уже на утро.
Ничего очевидного в выражении if (cond) return null; я не вижу, там может быть хоть приложение, хоть юнит тест, хоть код для запуска ракет земля-воздух.
Таки я исходил из того что изначально это легитимный код, который в таком виде очевидно бывает нужен только в тестировании.
Я в курсе что можно возвращать null как поехавшую реализацию исключения или из приватного метода как параметр для другого метода, но в целом похую на такие извращения.
В многопоточности.
1080 рублей?
хуявны
Хуя.
Тебе повезло, в жабе эйджизм, и возраст не меньше 30 - это основное требование к джунам.
@
ОТПРАВЛЯЕТ НА РЕВЬЮ
@
ЛИД БЕРЕТ В РЕКВЕСТ В РУКУ И ПОКАЗЫВАЕТ ДЖУНУ
@
НАГОВНОКООООДИЛ
@
ОЙ КТО ТУТ ТАК НАГОВНОКОДИЛ?
@
ФУ ФУ ФУ КТО НАГОВНОКОДИЛ?
@
ТЫЧЕТ ДЖУНУ РЕКВЕСТОМ В ЛИЦО
@
ТЫ НАГОВНОКОДИЛ, ДАА
@
НАЧИНАЕТ С ДРУГИМ ЛИДОМ ОБСУЖДЕНИЕ ТОГО КАК ДЖУН НАГОВНОКОДИЛ
@
СПУСТЯ 5 МИНУТ ИСПОЛЬЗУЯ САМЫЕ РВОТНЫЕ ЭПИТЕТЫ ВЫЯСНЯЮТ КАК ИМЕННО ДЖУН ДОЛЖЕН КОДИТЬ
@
Я ВОТ ДАЛ ТАСКУ НА 2 ЧАСА, ОН ТАК ПРРРПРРРРР ЦИКЛИЧЕСКИЕ ЗАВИСИМОСТИ НАПИСАЛ
@
А ВОТ ДАЛ ТАСКУ НА 6 ЧАСОВ И НАПИСАЛ ПРЯМ ТВЕРДО, ПО СОЛИДУ
@
СПУСТЯ 10 МИНУТ НАЧИНАЮТ ПОДНИМАТЬ ИСТОРИЮ ТРУДОУСТРОЙСТВА И ВСПОМИНАТЬ КТО КАК КОДИЛ
Сначала посмеялся. Потом поплакал.
> на каком уровне нужно знать сервлеты?
Написать примитивный с doGet()/doPost(), задеплоить на контейнер сервлетов и дёрнуть из браузера. Это хватит для общего понимания.
> классический спринг == спринг core?
Спринг без бута, с обычным конфигом аннотациями. До хмл опускаться не нужно.
Да.
Вот это кстати турбо кринж, в джаве намечается фикс этого говна когда нибудь? Project JenerikiZdorovogoCheloveka там например
спасибо за ответ
Как его подать начальству и обучить? Пусть базу учит, или же затачивать под наш стек чисто?
entity: client, debt, payment.
service: addClient(String name)
В сервисе я создаю клиента, сохраняю в базу, затем вызываю mapper и создаю через него ClientDTO. Соответственно метод сервиса у меня возвращает ClientDTO на рест.
Вопрос 1. Правильно-ли я сделал, что у меня на сервисе все сущности через mapstruct превращаются в DTOхи и отдаются на рест?
Вопрос 2. Мне нужно протестировать сервисный слой, и конкретно метод addClient. Но он возвращает DTOху, что не очень удобно, потому что у меня в контексте мапстракта нету. Я не могу в тесте вызвать метод и сохранить клиента, а получить ДТОху. Как быть?
Jetbrains давала ультимэйт Idea версию по студаку, а я уже закончил и ваще бомж, есть варианты отрубить проверку, с сохранением акка, или хотя бы прост trial reset?
в гугле забанили, там хуита какая-то, хочу способ из достоверного источника
Для бомжей создали коммунити и эклипс.
>trial reset
Каждый месяц на новую почту акк регаешь. Ещё вариант - побыть бесплатным бета тестером и скачать почти работающую бета версию бесплатно.
Здесь кто-то говорид, что бета-тесты сезонные между релизами, и постоянно сидеть на бета-версии не получится.
мимо
Ну и похуй.
Еще можно от прошлого лета версию скачать с триалом с их сайта и ее без мыла обновлять как в старые добрые.
> inb4: уёбывай, социо
Здесь вообще не тот раздел, где можно такое услышать. Любой, кто работает даже блядь копателем могил по дефолту не хикка, программист тем более, тут трындения на созвонах столько что ебанись.
Ну а по твоему вопросу - вообще хуй знает, вводная скудная, его бы отсобеседовать чтобы понять уровень. Скорее всего первое.
> Здесь вообще не тот раздел, где можно такое услышать.
Да легко. Устраивается на работу с осознанием, что родители не вечны, а перспектива голодной смерти в подворотне лет через 20 - такое себе. Кое-как проходишь собес, заикаясь и краснея из-за неумения контактировать с людьми. На работе после получения таски от тимлида расшибёшься об стенку, но сделаешь самостоятельно, т.к. стесняешься задавать вопросы, и похуй, что потратишь в 10 раз больше времени. Любые проблемы решаешь через того же тимлида, ибо боишься общаться с малознакомыми коллегами.
Примерно через пару лет проходит, становится похуй
В джаве.
>и похуй, что потратишь в 10 раз больше времени
У нас такое очень быстро парой "нужно вчера" задач.
Дак работать программистом гораздо сложнее и там уже не посидишь в телефоне, отвлекаясь на посторонние темы.
>Примерно через пару лет проходит, становится похуй
А на то, что у всех уже есть дети, тачки, жены и взрослые проблемы, а у тебя только аниме и код, когда станет похуй, можешь примерно почувствовать?
Не могу, стадия с аниме пока не закончилась, и подозреваю, что никогда не закончится
Неиронично не понимаю, почему так называемые взрослые проблемы должны казаться ценнее и привлекательнее, чем аниме и код, если оно тебе нравится и материально ты ни от кого не зависишь
Это и невозможно понять.
С самой формулировки "взрослые проблемы" прыснул слегка.
"Взрослые проблемы" - это деятельность Ленина (да хоть Тесака) или высадка на луну, а не вот это ваше.
Потому что многим аниме и код нравятся не искренне, а как способ подавления чувства пустоты из-за невозможности социоблядствовать. Конечно, есть очень много задротов, которым похуй на социо, но хватает и тех, кто на самом деле хочет другой жизни.
Мне например не нравится вообще ничего. Ни код, ни аниме, ни социальная жизнь. Но заебавшее аниме можно не включать, код пока заебал не сильно. А вот от попыток социоблядствать через силу мне прям настолько тяжело начало становиться, что я прям вымотан. Правда на общение по работе мне похуй уже почти. Пишу и заебываю коллег уже на автомате. Просто представляю что они нпс в игре и их нужно пройти. А вот если идти в бар с коллегами, то там становится неуютно. От настолок вообще вымораживает. Когда я был молод мне алкоголь помогал с этим. Но теперь я даже сильно пьяным чувствую себя неуютно среди малознакомых людей.
Аниме - антипаттерн.
Журнал учёта продаж розовых дилдо.
Ну так пиши одну строку для кабана, а для себя 1000 и кайфуй.
Какой курс-то?
Зависит от того кто это будет читать.
Я бы считал зашкваром любые курсы, т.к. они показывают что человек не способен учится сам.
Пишу по 100-200 строк в день, а потом читаю доку или книжку по очередной технологии с проекта. В неделю три созвона. Один по технологиям и два по проекту.
Джун в новом проекте в маленькой галере с +- новыми технологиями. Ну а если я буду справляться продолжительное время, то на меня накинут новых задач. На мидлов вон накинули ci/cd и еще некоторые части девопса. Мне вот уже предложили настроить мониторинг за несколькими штуками и составить гайд по использованию мониторингов. Пока предложили, как текучку разгребу наверно заставят через таски.
Тестировщиков нанимать не хотят - так что это тоже нам могут дать, нагрузочное например.
А ну это ок, если при какой то галере. Думал просто рандом курсы с какого нибудь степкика.
Я не тот анон что спрашивал, просто решил вклиниться. Степики я тоже проходил. Но че их указывать то? Мне тогда все видосы на ютубе, книжки и сайты со статьями тоже писать в резюме?
А какие еще бесплатные курсы бывают - я хз.
>любые курсы
>показывают что человек не способен учится сам
Даже боюсь представить, что за шиза у тебя там в башке
Вообще valhalla должна была какие-то положительные изменения в дженерики привнести, но проблему стирания вряд ли когда-либо решат, ибо всем уже похуй.
Перегрузка методов довольно редко где используется вне библиотек, как и дженерики тащем-то.
Ну вообще Spring без бута потрогать однозначно стоит, понастраивать пару раз вручную это все дело. Хмл конфигурации не нужны. Как только потыкаешь ручную конфигурацию сразу на бут переходи.
Сервлеты стоит потрогать на уровне get/post запросов, не более. EE не нужно.
Дополнительно стоит потыкать в JDBC, хибернейт, spring data jpa и еще security на поверхностном уровне. В целом для стажера имхо этого будет достаточно по части спринга.
То, что я перечислил учится за 2-3 недели на поверхностном уровне. Ну может с секьюрити придется чуть дольше повозиться, это обширная тема.
От джуна будут требовать полгода-год коммерческого опыта. От стажера никто особо ничего требовать не станет.
Ах если бы. У меня в спринг крудах есть и контроллеры с жинериками и сервисы тоже. Особенно много дтошек.
Меня взяли на джуна за это + тесты, докер и свагер. На стажёра челика взяли чисто за то что анон выше перечислил. Ну может отвечал я на одни и те же вопросы лучше. Хотя по паттернам и солиду меня немного пропустили, но взяли в итоге.
Тот стажёр по первой не мог понять зачем нужны интерсепторы.
Например есть респонс дто. У корня джейсонины общий формат. А в одном поле содержимое, в другом метаданные.
Другой общий формат у коллекции с метаданными по пагинации и сортировке.
В каких случаях вообще нужно разделять дто на респонс дто и реквест дто?
Какие подводные в том, чтобы дто для сущности было всегда одно?
Всё правильно сказал, и посыл правильный, неверно только то, что написано между строк.
Особый шарм добавляет наличие детских ошибок в "тся/ться" у субъекта, разглагольствующего про вредность образования.
мимо
Не знаю. У нас просто есть стандарт на респонс дто для нас. В том же дто лежат описания ошибок в случае ошибок. Для входного дто этого не надо.
По коллекциям тоже в дто лежит инфа по пагинации и сортировке. Во входном например не может быть инфы о общем количестве страниц или записей.
Ну и в некоторых местах мы и дто с данными можем наследовать. И там тоже может быть 4 поля одинаковых типов а два разных. Тоже через жинерики решается.
а если серьезно? Немчинский грит что в каждом регионе есть своя зп для джунов без опыта
Немчинский долбоеб эталонный же. Удаленку для кого придумали? Работаешь в мухосрани на барена из ДС.
Удалёнку придумали, чтобы не брать на неё джунов, а тем, кого взяли, платить мухосранскую зарплату вне зависимости от города кабана.
Джунов вообще не берут. Для джунов вкат закрыт. Либо ты мидлишь за 200к на удаленке, либо идешь нахуй.
Ну в вакансиях, где прямо четко пишут, что нужен джун - там только в половине требуют что-то кроме знания кора гита и реляционок.
И чаще всего знаете почему не трубуют спринг? Да потому что его там нету. Там любое говно от javaee до велосипедов.
https://hh.ru/search/vacancy?area=1&search_field=name&text=java+junior&from=suggest_post
Но таких вакансий 17 на всю рф.
Эти опарыши реально считают, что щас заспамят двач своим говном, доставят всем дискомфорт и все побегут на их парашу?
Так сейчас пишу код. Но как все важное напишу, то там еще на год на меня тасок заготовили в том числе вот таких "инфраструктурных", типа мониторингов. Но так как там даже в моем основном микросервисе много чего писать(ну а потом поправлять еще, пока фронты только-только до него дошли) скорее всего повесят параллельно. Просто мидлы уже параллельно всякой инфраструктурной штукой занимаются больше чем разработкой. А мне честно говоря не хочется, я еще и в написании кода не супер уверенно себя чувствую. А тут кроме ковыряния в конфигах всяких штук - еще и админов много пинать придется(по идее всем ололо-девопсом они должны заниматься, но они не умеют и не хотят - тупо подымают виртуалку и дают тебе креды если вещь не особо критичная).
Если ты не умственно отсталый, то тебе эти лычки не должны быть интересны. Единственные важные для тебя параметры это чистый доход и трудозатраты. А они в большей степени зависят от конторы и конкретно проекта, чем даже от твоих скиллов.
В других местах, куда меня-вкатунца брали было еще хуже. Тут маленькая галера(40 чел) и девопсов нет, но хоть какие-то процессы начинают налаживаться. И технологии более-менее свежие.
А там и вакансия единственного прогера-многостоночника и древнее легаси без тестов.
Да и от девопсов даже в средних конторах наверно будут отказываться. Нам вот обещали тестеров нанять, но в связи с кризисом как-то начали затягивать и наверно не наймут.
на собесе такое не спиздани, шизоуебище
Это ковариантные дженерики.
<? extends T> - символ подстановки с верхней границей(продюсер - дает читать/не дает записывать).
например: List<? extends T> - лист может содержать либо обьекты класса T(это тип), либо наследуются от него.
<? super T> - с нижней границей (консюмер - дает записывать/не дает читать). List<? super T> - может содержать либо типа T, либо те классы, от которых Т наследуюется
а полиморфизм тут при чем
ну ты пишешь свою коллекцию, например, и тебе нужны 2 метода: push и pop. соответственно они будут принимать и отдавать
и? у тебя один дженерик потребляет коллекцию (т.е дает писать в нее обьекты и проверяет тип), второй дженерик читает коллекцию(писать в нее не дает, дает только читать и проверяет тип).Ты делаешь 2 метода
1. pushAll (Collections<? extend T> list)
2. popAll (Collections<? super T> list)
>вторая пикча
Джависты сами в шапку поместили пикчу, где они изображаются пидорами. То есть официально: джависты - пидорасы, с признания самих же джавистов.
Хотели оскорбить питонистов, пхпшников и шарпистов, а обоссали себя. Бывает же такое.
Несколько дней придумывал?
Посоветуйте самоучитель больше похожий на справочник, желательно с акцентом на особенностях джавы в сравнении с мясом, например. Спасибо.
s/мясом/сями/
> Посоветуйте самоучитель больше похожий на справочник, желательно с акцентом на особенностях джавы в сравнении с мясом, например.
Ты чё специально реквест создавал под уже существующее?
Хорстманн, блядь, в шапке же написано.
Зачем тебе справочник, если есть бекграунд и цель не просто скоротать время на дрочь, а работу найти? Справочник это 100500 методов стандартной библиотеки. Да и вообще толстая книга будет вредна. Берешь короткий туториал, например на метаните, быстро его читаешь и идешь к спрингу пилить круды. К толстым книгам и справочникам возвращаешься, когда что-то будет непонятно по ходу изучения фреймворка, пиления пета или подготовки к собесам.
> List<? extends T> - лист может содержать либо обьекты класса T(это тип), либо наследуются от него.
> List<? super T> - может содержать либо типа T, либо те классы, от которых Т наследуюется
А в чем разница?
А понял. Хуета короче какая то мозговыносящая. Намного проще когда всё Object.
Разница провляется, когда у тебя есть код, оперирующий такими дженериками. Например, два метода:
void eat(List<? extends T> list) {
// В этот метод ты можешь передать как лист от T, так и лист от наследников от T, что довольно часто востребованно. Писать в такой лист ты ничего кроме null'ей не сможешь, читая из этого листа, будешь получать T
}
void poo(List<? super T> list) {
// В этот метод ты сможешь передать как лист от T, так и лист от классов, базовых к T, например List<Object>. Метод сможет писать в такой лист Tэшки, но при попытке прочитать что-то оттуда получишь всегда Objectы.
}
Грубо говоря --- <? extends T> это сущность, откуда происходит чтение, <? super T> --- сущность, куда происходит запись, а сами такие дженерики нужны, чтобы работать с конкретными сущностями полиморфно, не привязываясь к конкретным типам в сигнатуре методов. В примере выше, оба метода выше смогут работать, принимая в качестве аргумента List<T>, но каждый из них поддержкой этого типа не ограничен.
Нужен совет. Изучаю жабу и бд, фронт вообще не знаю.
Хочу реализовать страницу, на которой будут элементы/кнопки, при нажатии на которые в поле будут добавляться данные в указанном виде.
Так же, чтобы при нажатии на элемент в поле, чтобы он исчезал, а остальные сдвигались на место убранного элемента.
Так же будут кнопки стереть, чтобы убирался с последнего элемента и подтвердить, чтобы выполнить некоторое действие.
На чём это проще всего реализовать? Хватит ли html или нужно что-то ещё. Есть где-то готовые решения?
Судя по задаче тут ни жаба ни бд не нужны.
Готовая интерактивность на фронте проще всего через vue.
Куча готовых решений через vuetify.
Если не хочешь погружаться во все это говно и делать по старинке, то на ванильном жопаскрипте тоже можно.
Но в него, как и во все что перечислено, придется вникать от недели и больше.
Если во всем этом 0, то с наскока что хочешь сделать не получится.
После методичного изучения зёрен и плевел браться за задачу.
Придётся тебе учить JS, там это делается в 10 строчек.
Можно сделать и на голом HTML, но придётся очень сильно поебаться. Чистый HTML не умеет в динамику, и если страница загрузилась в каком-то виде, то без перезагрузки ничего не изменить, можно только сгенерировать на сервере через шаблонизаторы изменённую страницу и загрузить её. В твоём случае, например, кнопки для ввода будут элементами формы:
<form method="POST">
<button name="button_a">A</button>
...
</form>
На сервере надо при отправки формы определять, какая из кнопок нажата, и при следующей генерации страницы добавлять эти кнопки в шаблон.
Две стороны одного вонючего говна.
Почему вью? Потому что нюфаг его может подключить без ебли с npm, cli, гульпами, бабилонами и прочей залупой усложняющей жизнь - просто через script cdn в одну строчку. Как это делали деды 20 лет назад.
Распостраненность и того и другого в проде однохуйственна одинакова.
> нюфаг его может подключить без ебли с npm, cli, гульпами, бабилонами и прочей залупой усложняющей жизнь - просто через script cdn в одну строчку
Среакт тоже так можно.
Возможно. Я давно все это тыкал.
> приложение
Клиент-серверное имеешь ввиду?
На ведре для клиента своя экосистема. Конечно есть react native, но юзают в основном либо kotlin+android sdk, либо flutter. Про вью тут не скажу.
https://habr.com/ru/post/676084/
>Количество ошибок с многопоточностью заметно возрастет.
>Виртуальные потоки не дадут никакого ускорения в типичном джава приложении без переписывания кода.
>Виртуальные потоки не уменьшат потребление памяти нормально сделанным приложением. 64 килобайта * 1_000 типовых потоков, это неинтересно.
Добавил тэг в игнор.
Будто в обычные потоки все умеют. Да никто не умеет, надеются на фреймворк, который магически возьмёт свободный поток из пулла и будет в нём обрабатывать запрос.
Где они? Куда они делись? Существовали ли они вообще? Иногда гуглю инфу по технологиям EE из нулевых типа Axis, EJB, WebSphere и нихуя не нахожу, одни хеллоуворлды без объяснений, сухие джавадоки и книги 15-летней свежести.
Они на двадцатой странице гугла? Или просто все сайты уже повыключали из-за низкой посещаемости?
> Откуда следует, что никакого прироста для вычислительных задач не заявляется и не ожидается, а прирост ожадается для задач с большим количеством блокирующего кода. Такой тест, как мне кажется, и стоило включить в статью.
Кстати в котлине для cpu cunsume есть отдельный от io consume тредпул. И при спавне корутины это можно явно указать. Но в лума всё спрятали от разраба в черный ящик.
> Древние мурзилки
Раньше вот эти челы постоянно были в топе выдачи, а что с ними стало... все переехали на стековерфлоу и баелднуг.
Ну хз, mkyong и сейчас попадается.
Глядите, петушарпер не слышал про самоиронию.
>петушарпер нашел статью на петухабре в которой якобы обсирают джаву и радостно побежал кидать ее в джава тред (даже не читая содержания кроме итогов)
Мне нравится шарп, пишу на нём в свободное время, но работа на нём говно, поэтому вкатился в жабу ради деняк.
Исходники пишу в vim, компилирую без студии через C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe, который на любой винде из коробки.
Выписан из жавистов.
Нет, пишу на спрингбуте синхронные круды с подстгресом.
Просто охуеваю, как ораклы ссут в уши. Когда только начинал вкатываться, во время выхода жаба 12, слушал разинув уши, про то как много даст короткий релизный цикл, а вот вам большие проекты, нужно только подождать лтса. А на деле и проекты к лтсам не успевают, да и не то чтобы очень нужны они были. По факту хоть у меня версия и называется жава 17 - почти ничего не изменилось и я сижу на чуть проапгрейженой восьмерке.
Не то чтобы мне сахарок прям пиздец как нужен был, но булщит слышать неприятно.
Спринг 6 так вообще ничего нового не обещает.
В тот момент когда в джаве начнет появляться что-то фундаментально новое, ровно в этот момент джава и помрет. Вечная обратная соместимость --- вещь, за которую джаву и ценят в энтерпрайзах (равно как и ее проклятье, из-за чего она так туго развивается)
А лум --- в луме назревала нужда слишком давно. Везде уже есть поддержка асинхронщины и зеленых потоков, только в джаве до сих пор нет. Пора бы уже.
Ну и нельзя сказать что с восьмерки джава прям не развивалась. Просто развитие было скорее виртуальной машины, чем языка --- например JPMS, затевавшийся в том числе и с целью подрефачить хотспот под нужды коротких релизов, всякие оптимизации типа новых GC и строк. В сторону AOT было многое сделано, грааль тот же.
Только и аот и эти ваши модули нужны в сущих процентах проектов. Да и если их использовать по настоящему в проде, что от модулей, что от аота по пизде идет обратная совместимость. >>08469
Альтернативные gs нужны наверно почаще, но тоже в подавляющем меньшинстве и это еще дальше от 90% крудошлепов.
> В тот момент когда в джаве начнет появляться что-то фундаментально новое, ровно в этот момент джава и помрет.
Ебало представили?
Вальгаллы само собой. Мне бы это хоть как то облегчило написание крудов.
Вот буквально вчера в мокитовский верифай закинул any(), и не запустив закинул в гит. А там anylong нужен был. Не заметил, компилируется же. Недолго провозился, там рантаймэксепшон прямо сказал что не так. Но все равно неприятно.
Подобные топы - разновидность клипового мышления зумерков. В реальности всё куда сложнее. Тебе хочется по пунктам доказать, что конкретные фичи мне на самом деле не нужны, а нихуя так не будет.
Просто дай мне в жабу синтаксис шарпа, и я буду доволен, окда?
Зачем тебе в джаве синтаксис шарпа, если есть шарп?
Зачем тебе в джаве синтаксис котлина, если есть котлин?
Ты гришь "дай мне фич и я буду доволен", но ты не просишь с уважением, не выдаешь и не обосновываешь свой топ. А мне вот например по умолчанию (пока не обоснованно обратное) нахуй новый языковой сахар конкретно в джаве не вперся --- с ним у анальников будет только больше способов плодить неявные баги, и че? Обнимемся и нахуй вместе пойдем?
Если уж говорить о клиповости мышления зумерков --- зумерки как раз и любят тащить блестяшки как сороки - вечно недовольны синтаксисом, нихуя сделать не могут. Дали те var type inference в 10ке --- радуйся, так нееет, еще какой нить хуйни подавай, чтоб больше больше java puzzlerов потом было.
> Зачем тебе в джаве синтаксис шарпа, если есть шарп?
Мне нужен синтаксис шарпа, а не сам шарп. В шарпе охуенный синтаксис, но экосистема - ёбаное говнище. А в жабе наоборот. И экосистема мне представляется важнее синтаксиса. Но хотелось бы бочку мёда без ложки дёгтя.
> Обнимемся и нахуй вместе пойдем?
У всех разные взгляды на то, каким должен быть язык. Вот.
Минималистичный синтаксис это одна из причин развитости экосистемы. Тулзы писать просто и понятно.
В синтаксисе си вообще нихуя нет, его стандарт это короткая книжечка. Но на его уровне у си вообще нет конкурентов, хотя есть и плюсы и расты и ещё миллион никому сейчас не известных убийц сишки было в 80ые.
Интерпретирует байткод как интерпретатор в любом скриптовом языке. Если какой то участок создает грузку, JIT компилирует его в нативные инструкции.
Как минимум можно запустить метод миллион раз, скорее всего по нему пройдется жид, может даже несколько раз https://www.ibm.com/docs/en/sdk-java-technology/7?topic=jc-how-jit-compiler-optimizes-code
Смысл жида не в этом. В нативщину на целевую платформу можно сразу через graalvm. Вообще AOT
Спасибо, анон, за наводку. А можно всю jvm в нативный код скомпилировать?
Есть флаги JVM типа Xcomp, но там много нюансов.
Для этого надо было родиться пораньше, когда эти мурзилки ещё были. А так есть в планах написать подшивалку-архиватор, потому что тот же баелдунг наверняка не вечен, но руки пока не дошли.
> «Skillbox предоставит 100 грантов на обучение двенадцати самым востребованным профессиям образовательной платформы. В их числе “веб-разработчик”, “SMM-специалист”, “Java-разработчик”, “веб-аналитик” и другие», — рассказали в пресс-службе.
Уже готовы конкурировать с неоплачиваемым рабочим за УДО?
Найс рофл, этим говном про "готовы конкурировать с зеками" засрали нахуй всю доску, вахаха ебать как же смешно просто бля живот надорву ща, особенно когда одна и та же несмешная шутка повторяется сто раз и обязательно надо в каждый тематический тред с ней заглянуть дщополнительно - ну тогда вообще уровень смеха становится как в "Мистер Смех" Беляева.
Ньюфаг и мвп - бесконечные треды, и очень быстрые.
Допускаю, что СЕГОДНЯ ещё никто не постил, ты первый, поздравляю, приходи завтра
>не срали в ньюфаг треде с 10 числа
>значит не срали вообще
Ну так беги скорее туда, вдруг там кто-то ещё не слыхал
ВАМ за это платят?
>Перегрелся?
>Ты шиз?
>Ты идиот?
Да, да и да. Ответ на любой вопрос, касающийся моей личности - автоматически "да". Вопросы не по моей личности есть?
Как минимум, пруфануть что этим "засрали нахуй всю доску".
Иначе ты бот неудачно перекрытий актуальную информацию.
Ах да, вопросы касающиеся твоей личности - автоматически "да".
> Почему я не могу клиента написать на js, например?
Вебфлакс - серверная либа, то есть предназначена, чтобы один сервер обращался другому. JS нужен для взаимодействия фронта и бэка, а вебфлакс для взаимодействия двух бэков.
> Что значит термин реактивный?
Асинхронный.
> Я слышал раньше react js это как-то связанно?
Вообще никак не связано.
Хуй знает, чем он пидорам из спринга не угодил, но его собирались депрекейтить, если не уже.
В чем может быть подвох? Подразумевается знание коллекций, типа знание сложности операции, чем одно эффективнее другого (для большого объема данных).
Но ведь по сути arraylist всегда эффективнее линкедлиста, как и хешсеты/мапы эффективнее трисетов/мапов не считая задач где нужна отсортированная коллекция. А остальные коллекции вообще не видел чтобы особо где-то применялись.
Параллельность разве может конечно сильно увеличит производительность.
В общем что мне стоит ожидать? Я дебил и никогда не задумывался о скорости работы на больших данных, а теперь за них спрашивать хотят.
Рест темплейт блокирует поток до получения ответа или таймаута, вебфлакс нет
> Термин реактивный
> Асинхронный
На самом деле --- "реактивный" это не совсем тупо "асинхронный". Понятие реактивности появилось отсюда: https://www.reactivemanifesto.org/, оно включает в себя асинхронность как вид message-driven подхода к дизайну, но асинхронностью не ограничивается.
Индексы ускоряют чтение, но замедляют запись. А теперь догадайся случай когда нужно вводить индексы
У рест темплейта апи ублюдское. Ну и с трендом на реактивщину решили привести все хттп запросы к одному интерфейсу
Можно, вопрос смотря какая задача конечно будет
Хм, смахивает на отдельный топик для холивара. Мне в вебклиенте нравится одинаковость. вебКлиент.метрд().урл(...).получить().телоВМоно()...
В отличие от методФоЧтото у рест темплейта
>Как минимум
Т.е. по поводу своего говновброса тебе нечего сказать, ты просто высрал это в десятый раз чисто чтобы потроллить двач, а обсуждать это ты не хочешь? Хочешь только чтобы я тебе что-то делал:
>пруфануть что этим "засрали нахуй всю доску".
Нет. По крайней мере объём работ, требуемый для этого, уже вышел за пределы бесплатного. Я хз, по каким ключевым словам это искать, это тебе должно быть виднее, ты и подскажи.
Никто здесь тебе не завидует, тут скорее все боятся таким как ты стать.
>ведь по сути arraylist всегда эффективнее линкедлиста
Нет. Всякие вставки в середину, в начало, удаление работают за O(1), когда как в ArrayList за O(N).
>>09009
>А остальные коллекции вообще не видел чтобы особо где-то применялись.
>Параллельность разве может конечно сильно увеличит производительность.
Ну вот многопоточные коллекции повторить стоить, их внутреннее устройство, какие с использованием блокировок написаны, а какие - Lock Free, итд.
> ты просто высрал это в десятый раз
Что именно? Если ты про пруф, который ты не можешь дать, то вся твоя аргументация останется твоей личной фантазией непонятно для чего придуманной и непонятно для чего отстаиваемой.
> обсуждать это ты не хочешь
Хочу, для этого она и вкинулась. А вот то что ты не хочешь это понятно еще по первому посту. Но для чего тогда продолжаешь этот диалог? Сиди молча и не шитпости. Если конечно твой умысел именно не в том, чтобы защитпостить эту новость.
Просто если посмотреть на эту ветку, то какого то шиза преследуют зеки по всей доске, хотя ни одного поста (кроме этого) с этой новостью на доске нет. И обратное он доказать не в состоянии. Потому что логика. Потому что факты.
> Я хз, по каким ключевым словам это искать
Ну вот же твои слова
> этим говном про "готовы конкурировать с зеками"
Если "вся доска этим засрана", то особого труда для тебя это не должно составить.
Но как оказалось несуществующие вещи найти не так просто.
На время выбрось из головы все мурзилки, которые знал.
Если кодить не получается, выбирай самые безобидные таски для завершения.
Никогда никому ничего не подноси и не создавай объекты по личной инициативе. ...
Не бери ничего чужого, кроме кода с стековерфлоу
Будь чистоплотен.
Лол
Ахаха, дид не промах.
>>выбирай таски
>>выбирай
Сычев вот тебе срочная таска, завтра надо в прод запускать, но там быстро, только ручку дернуть.
Но ты ведь все равно прочитал, и ожидаемо опять убежал, чтобы не обосновывать свои пуки.
Ебать, у него ещё и сайт есть???
А ты не охуел ли часом?
Я не сомневался в твоих интеллектуальных способностях.
А ну ка песик, придумай новую отмазку почему у тебя нет пруфов к
> этим говном про "готовы конкурировать с зеками"засрали нахуй всю доску
Боишься когда тебе в глаза смотрят?
Ахахаха, смеялись всем отделом) Пиши есчо)
А без выебонов и 4 магических слов? Чем реактивность больше, чем просто асинхронность?
Ничем, это баззворд.
Слабая отмазка, раньше были лучше. Теперь просто закрываешь лицо руками и тебя нет. Что конечно соответствует твоему интеллекту.
Асинхронность это просто когда есть колбек-потребитель, куда тебе приходит результат работы некоторой ботвы-отправителя. По классике, если потребитель сообщения по какой то причине заблокируется (всяко бывает, че), вслед за ним заблокируется и отправитель (или откажет, в зависимости от реализации асинхроньщины).
Реактивность --- это как минимум асинхронность + backpressure == реактивные стримы. Если без выебонов, backpressure это когда сам потребитель событий может сказать отправителю --- "мне харош, отправь мне 5 сообщений и больше ненада, я не голодный". В итоге отправитель не эмиттит сообщений больше, чем по факту сможет обработать получатель, то есть не дудосит получателя работой настолько, что оный отказывает. Раз получатель не отказывает, не отказывает и отправитель.
Но на самом деле вся история про реактивность --- это история про построение устойчивых систем, которые способны адекватно реагировать на нагрузку --- не уходить в отказ или лютые тормоза, а как минимум ответить, а лучше вообще адаптироваться под текущую нагрузку на лету. Реактивные стримы из примера выше --- это лишь инструмент для построения реактивных систем, но он не единственен. Как пример, есть еще паттерн curcuit-breaker, с несколькими реализациями. Многие вещи общего назначения, типа кафки, мессаг-брокеров, микросервисов или горизонтального масштабирования рассматриваются как средства для построения реактивных систем. Реактивщина --- скорее философия, нежели конкретный тул.
Раз про реактивность сказано рядом с js то стоит упомянуть, что на фронте под реактивностью понимается не тоже самое что на бэке.
На фронте реактивность это возможность изменять состояние js объекта, чтобы эти изменения автоматически обновляли связанное с ним html говно без твоего участия. По сути просто навороченный observer.
Да так то можно и параллели между фронтом и бэком провести. Прямой апдейт странички по каждому событию благополучно кладет страничку, когда событий на страничке становится много. Реактивность позволяет батчить эвенты, и апдейтить страничку фиксированное количество раз в секунду. Отзывчивая страничка есть такая же цель реактивности, как и отзывчивый API.
opencl
> можно чтобы он висел один на все время работы программы
Нужно. Устанавливать новое соединение каждый раз слишком дорого, и стараются, чтобы он висел как можно дольше. Во всяких спрингах и EE для этого достаточно сконфигурировать один раз датасорс.
Почему тогда этот код работает? Вроде и не ? extends Object, а вроде и интеджер могу засунуть.
? extends T будет T*
Я ТВОЮ МАТЬ ЕБАЛ, ДЕГЕНЕРАТИВНЫЙ ВЫБЛЯДОК!
Объяснять, почему так сделано, мне лень, но вероятнее всего ты хочешь UPSERT. В оракле есть MERGE, в постгресе, вроде, INSERT ON CONFLICT.
Потому и работает, что там не <? extends Object>. Если б был <? extends Object>, то не работало бы.
Ты просто пойми разницу между двумя типами, и отделяй тип переменную от типа ее значения/присвоения. Если у тебя переменная типа List<Object>, то значение этой переменной всегда будет лист элементов типа объект. Что означает что ты можешь добавлять в этот лист объекты и это не будет противоречие с точки зрения системы типов.
Но если у тебя переменная типа List<? extends Object>, значением этой переменной могут быть как List<Object>, так и List<Integer>, или List<String>, List<Xyi> --- вообще любой лист с элементами-наследниками Object. Писать в такой лист обжекты ты уже не можешь, потому что ты не можешь по такому типу переменной знать, что там конкретно за лист-значение. Ты сделаешь list.add(3), а на самом деле там List<String> все это время был присвоен --- и все: у тебя в список строк просочился интежер, хуйня какая то получилась. Замени в своем примере первую строку на `List<? extends Object> list = new ArrayList<String>();` и все станет ясно.
Но зато читать из List<? extends T> ты будешь гарантированно T, вне зависимости от того, какой конкретно там тип T. Полиморфизм.
Все понял, спасибо, анон!
Мы вот сейчас вынуждены учить всю эту галиматью только из того, что изначально разработчикам джавы лень было добавить шаблоны из С++.
На уровне байт-кода тоже нет ни каких обобщений. Вся эта хрень только на уровне компилятора.
>Нет. Всякие вставки в середину, в начало, удаление работают за O(1), когда как в ArrayList за O(N).
Но в середину не работает за O(N). Ведь надо же еще элемент найти, это отдельная операция. Получается в среднем пососал
>Ну вот многопоточные коллекции повторить стоить, их внутреннее устройство, какие с использованием блокировок написаны, а какие - Lock Free, итд.
Бля, вообще не ебу, знаю что существует, что можно как-то отдавать на работу эксекьюторсервису, не больше. Почему-то всегда хуй клал на изучение многопоточности. видимо придется соснуть теперь
Всмысле? А как тогда в c++ных шаблонах реализована ковариантность-контравариантность? В каком то виде они должны же быть там, иначе как вообще жить?
> На уровне байт-кода тоже нет ни каких обобщений.
Кстати, это не так. И проверить это можно легко, чекнув какой нить класс-файл утилитой javap. Дженериков нет в рантайме, в байткоде все есть.
может это ты тупой и не знаешь?
Что значит не проглотит? Обработает стандартной стратегией при возникновении эксепшенов - откатом транзакции.
чзх, синьор еблан что ли?
Не повезло челу. Наверное какая то наебка от самоутверждающихся анальников на собесе -- подкинули какой нить паззлер. Хуй его знат че это за repo и кидает ли оно по факту эксепшон. Если эксепшен кидается и нигде не перехватывается, транзакшон откатится, и принтлн не выведется. Веб сервер не дропнется и продолжит работу, если это подразумевалось.
спс
Но кстати говоря, есть интересный момент, который я с наскоку не вспомнил:
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/transaction/annotation/Transactional.html
>If no custom rollback rules are configured in this annotation, the transaction will roll back on RuntimeException and Error but not on checked exceptions.
То есть, как будто бы получается, что checked exception на месте рантаймового эксепшона транзакцию б не откатил бы.
Ну охуеть, задание даже не на знание транзакций и говнохибернейте, а на то, угадаешь ли ты, о чём думал еблан, писавший комментарии к коду.
Не я, я мимокрок.
Не он тебя тупым назвал, а я. Ты тупое дегенеративное хуйло, потому что должен был правильно задавать вопрос, а не дублировать тупорылый вопрос от собеседующего.
Поездить на "Яве"
Через файл, очереди, хттп, ...
hibernate.hbm2ddl.auto=create
Но лучше использовать тулзы для миграции. Такие как flyway и liquibase
Обычные сокеты.
Если тебе кажется, что на одном хосте это избыточно, то уходи из жабы и иди в C++.
Твоя мамаша тупое дегенеративное хуйло, которая не научила в общение с людьми. Наверняка у тебя сальные волосы, рюкзак и маленький хуй из-за которого ты комплексуешь. А по факту ты и есть тупой, потому что код продолжит выполнение
У меня километровый хуй, которым я прямо сейчас стучу по лбу твоей мамке поблядухе.
Такие шарады решаются не детальным разбором кода, а навыками общения с собеседующими. Предполагается, что кандидат должен задать вопросы на уточнение, что здесь имелось в виду и через их подсказки дать ответ. Проверяется не знание джавы, а умение общаться.
Полгода-год.
int[] numbers = {12, 17, 8, 101, 33};
Работает. А вот это:
int[] numbers;
numbers = {12, 17, 8, 101, 33};
Нет. Почему так?
Мод на минсерафт напиши, очень много чего нужно.
а как же в универе учатся 4-6 лет на погромиста? плюс там же всякий матан
>>учатся 4-6 лет
Чтоб код писать не нужно знать историю России, черчение, маркетинг и тонны матана. Там полезных кодомакаке предметов от силы процентов 10-15, с учетом всяких бд и скл, которые не сильно изменились за 30 лет
а как же развитие кругозора, абстрактного мышления и прочих важных качеств, чтобы стать инженером, а не манкикодером?
История и маркетинг не развивают абстрактное мышление и кругозор, они их сужают и деградируют.
Но в тех. вузах не преподанию ни то, ни другое, поверь мне как человеку с ВО по специальности инженер-программист.
Я больше верю себе как человеку с ВО по специальности ИВТ. Были и история, и социология, и экономика, и философия, и русский язык.
Вроде, была в рамках основного курса истории. Хуй знает, я проебал почти все лекции по этой блядской истории, экзамен сдавал по выученным за ночь билетам.
>>12159
Я уже после поступления узнал, что так можно было. Ради интереса потом посмотрел учебные планы нескольких других "программистских" специальностей, на которые проходил по баллам, везде был "гуманитарный блок" в том или ином виде.
Техническое ВО даёт общую базу, математику которая прокачивает мозг, навыки работы с информацией, более лёгкое трудоустройство и формирует твой круг общения.
какой язык? 1с? ну да, это чисто кал для бабла
не то что няшная джава джавуська джавусечка со всей ее вселенной
Да, я учил жабу тупо ради деняк. Дома пишу пет-проекты на чём угодно, лишь бы не на жабе.
>и шарпа.
1. Авто-свойства
2. Свойства с init (хотя это может быть и есть, хз)
3. Человеческий синтаксис
4. Async/await
5. Linq
6. Generic math + abstract interface member
7. Ебаные структуры наконец-то а не только классы и рекорды
Это вот тока то, что я вспомнил.
> 1. Авто-свойства
> 2. Свойства с init (хотя это может быть и есть, хз)
Есть ебучий ломбок
> 3. Человеческий синтаксис
Его и в шарпе нет.
> 4. Async/await
ExecutorService
> 5. Linq
Стримы
> 6. Generic math + abstract interface member
Никому не нужно.
> 7. Ебаные структуры наконец-то а не только классы и рекорды
Рекорды и тот же лобок.
>1. Авто-свойства
Ты про геттеры? Так у нас лобок есть.
>2. Свойства с init (хотя это может быть и есть, хз)
Ты щас сам себя и свою ассемблеропарашную хуиту обосрал, лол.
>3. Человеческий синтаксис
Который является калькой с джавы, ага.
>4. Async/await
Дрисня, мешающая разработке.
>5. Linq
Hibernate. На ассемблеропарашной хуите до сих пор скл запросы пишут?
>6. Generic math + abstract interface member
Гордится статиками? Ты превзошел в тупости всех петушарперов сразу.
>7. Ебаные структуры наконец-то а не только классы и рекорды
Чем отличаются от рекордов, кроме того что их писать медленнее?
>Это вот тока то, что я вспомнил.
Больше ничего и нету. Вот и получилось, что петушарп эта та же джава, но без уймы важных фич и самое главное библиотек и фреймворков, но зато с кучей бесполезного ассемблеропарашного говна.
А теперь скажи мне, где у тебя:
- Javadoc
- Project Loom
- Возможность писать код на линуксе
- GraalVM
- Настоящий хибернейт, а не калька с джавовского хибера, не обновлявшаяся с 18 года
А еще забыл, где у тебя обратная совместимость, господин петушарпер?
> Я уже после поступления узнал, что так можно было
Да я тоже, выёбываюсь просто. На самом деле мне повезло.
Не смей упоминать ломбоки все знают что чтобы не обдристаться в жавашарп сраче надо усиленно игнорировать экосистему жавы и учитывать только язык и стандартную либу.
>Есть ебучий ломбок
Ок.
>Его и в шарпе нет.
Есть.
>ExecutorService
Очередная попытка в асинхронность как шарпе но вместо того чтобы в открытую взять полезную фичу которую взяли популярные языки.
>Стримы
Подробнее.
>Никому не нужно
Крудошлеп не палится.
>Рекорды и тот же лобок
Рекорды это вообще не структуры, даже близко
Ребенок, съеби, если не можешь в адекватную дискуссию.
>подробнее
Погоди погоди, так у вас в петушарпе еще кроме
>А теперь скажи мне, где у тебя:
>- Javadoc
>- Project Loom
>- Возможность писать код на линуксе
>- GraalVM
>- Настоящий хибернейт, а не калька с джавовского хибера, не обновлявшаяся с 18 года
Еще и стримов нет? Пиздец, насколько надо быть копрофагом, чтобы на этой параше писать.
>Ты щас сам себя и свою ассемблеропарашную хуиту обосрал, лол.
Что ты несешь, шизло? Я сказал "хотя это может быть и есть уже в ДЖАВЕ). Я не в курсе есть ли у вас init свойства.
>Человеческий синтаксис
Как там каждый раз два метода вручную писать? Как там постоянно писать @override сверху метода, по сути эквивалент всратому синтаксису $ из пыхи.
>Hibernate. На ассемблеропарашной хуите до сих пор скл запросы пишут?
У тебя мозг расплавился? Что ты вообще несешь? Причем тут sql запросы и ассемблер?
>Гордится статиками?
Даже не могу твое ебало ирл представить. В курсе, что некоторые классы могут иметь часть статик методов и часть не статик методов.
>Чем отличаются от рекордов, кроме того что их писать медленнее?
Чем их медленнее писать, шизло?
>- Javadoc
Есть, в C# коде можно писать разметку, например <summary>, а затем захуярить в один большой документ.
>- Project Loom
Проиграл. Какая-то попытка в таски из C# и concurrency либу из шарпа.
>- Возможность писать код на линуксе
Зачем? Линукс юзают для серверов, для остального есть винда и мак. Да и .NET 6 стал полностью кроссплатформенным
>- GraalVM
Обосрался в голос. Сделали очередную виртуалку которая компилит разные ЯП. Не поверишь, но любой яп поддерживающий msil будет запускаться в платформе .NET которая существует с 00-х годов, а твой граалвм вышел в 2019, задумайся долбоёб.
>- Настоящий хибернейт, а не калька с джавовского хибера, не обновлявшаяся с 18 года
EfCore, супер ахуенная ORM поддерживающая любые манипуляции с SQL бд, максимально ООПшная. Если нужна бОльшая производительность - Dapper, где ООП чуть поменьше, но зато быстрее. Нужно MongoDb? Юзаем оф. решение от монго для C# которая очень похожа на EfCore. И прикол в том, что везде используется один интерфейс IQueryable транслирующий все твои Linq запросы в запрос в базу данных.
>Еще и стримов нет?
Каких стримов? Ты о чем? Назови название технологии и я найду её лучший аналог в C#
>Как там каждый раз два метода вручную писать? Как там постоянно писать @override сверху метода, по сути эквивалент всратому синтаксису $ из пыхи.
ахахаххах блядь ну ты и еблан
нах ты споришь с тем в чем не разбираешься?
>ахахаххах блядь ну ты и еблан
>нах ты споришь с тем в чем не разбираешься?
Я чекал дохуя джава кода и он выглядит просто мерзко. Он некрасивый. Синтаксис ужасный и похожий на рыготину с++, пхп и какого-нибудь питона. Нагородили много лишней хуйни которая только замедляет написание кода потому что тебе нужно каждый раз ебаться с конченым синтаксисом, который ты через 3 месяца уже не будешь понимать. Я вот что-то через полгода вернулся к проекту и вполне неплохо понимал что там происходит, хотя даже большую часть писал не я. Задумайся, пизда ты тупая
какой же ты долбоеб
Зубрить эксепшены
Зубрить ввод-вывод
Зубрить дженерики
Зубрить многопоток
Зубрить мурзилки
Мурзить зубрилки
еще и аннотации спринга надо знать наизусть со всеми комментами
>писать на языке в котором по стандарту интерфейсы называются с буквой I в начале
>визжать о некрасивом синтаксисе
Грааль вм это не только про поддержку кучи разных языков, это самое бесполезное что в ней есть. Грааль вм это буквально некст ген виртуалка, она твой новенький кор нет обошла на лет 20 в развитии, хотя вышла раньше него.
В универе мотивируют угрозой отчисления и армейкой
>>писать на языке в котором по стандарту интерфейсы называются с буквой I в начале
>>визжать о некрасивом синтаксисе
Да. А еще у нас скобочки ебаные ставят с новой строки. А еще есть конвенция. Когда вижу:
public void Method(){
}
То сразу хочется ебальник снести тому долбоёбу который так пишет
>>гордиться тем, что код на его языке можно прочитать
>Дичайше проиграл в голосяндищу.
Хоть 1 причину назови почему читаемость кода это не является плюсом?
>>12571
Хоть 1 обоснованный аргумент будет, а не "унаслудше". Чем лучше?
Матан знаю оч хуево. Что проще?
Прям тянет изучать именно джаву, но проебать этот год я не могу
>Я не в курсе есть ли у вас
Дальше не читал. Здесь не бесплатные курсы по языку, хочешь чтобы тебя чему-то научили - будь добр хотя бы гонор поумерить.
js. удаленка на тырпрайз языке очень редка, а если и будет то почти гарантировано будет совместно с посещением офиса раз в неделю-две т.к надо будет постоянно обкашливать вопросики с сеньером и пм. Учи nodejs, react или че там модно, короче самые самые модные на 2022 год и спустя год активно обучения, а не скроллинга двачей то вполне можешь вкатиться сначала на 50к+ где-нибудь в офисе, а спустя годик работы можно на удаленку. Просто прими тот факт, что на удаленку берут только тех спецов которые могут сами во всем разобраться без помощи сеньера, чего ты конечно же после года самообучения не сможешь сделать и поэтому тебе просто придется год-два терпеть.
>Дальше не читал. Здесь не бесплатные курсы по языку, хочешь чтобы тебя чему-то научили - будь добр хотя бы гонор поумерить.
Да похуй мне на ваш Java, я уже вкатился в C# и доволен как слон. Мне просто нравится спорить о вкусах да и попиздеть просто так, в реале-то не с кем.
Как вкатится? Смотрю всё это и конспектирую.
Нравится Shattered Pixel Dungeon, Minecraft, Pixel Dungeon...
https://www.youtube.com/watch?v=AsIdJBSWTuo&list=LL&index=39 этот топ
Этот кал неактуальный https://www.youtube.com/watch?v=U2OliQwRb6c&list=PLDyJYA6aTY1lT614ixLYq48har7EnCXpk
Ладно, прочитаю весь тред, гляну гайд по вкату.
Какая же ужасная жизнь, когда алкаша батя не можешь выгнать не прописанного здесь.
Имею очень плохую память, не запоминаю даже если записываю.
Толсто.
Сейм, из-за этого каждый раз перед новой работой приходится стандартную либу задрачивать чтобы не попустили на загадке по знанию синтаксиса
Он про вот это позорище, аналог шарповский LINQ https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/stream/package-summary.html
Нравится спорить в том, о чем не шаришь, шарпомуха.
База
Так тут оракл все в рот ебали. Все хорошее в жабу было сделано или запланированно при сане, которые даже разлождившись на липовый мед сделали много полезного.
Если уж фажить по каким-нибудь жидам, то из жидбрейнс или пивотал.
По поводу шарпа. Открываем табличку и видим проекты на жабе, питоне, жсе, расте, конечно же на си и плюсах.
https://habr.com/ru/company/selectel/blog/532680/
И 0, ноль блядь на шарпе. Ноооль. Шарп это не конкурент жабы. Это проприетарное говно, вроде свифта. И даже попенсорсность нихуя не поменяла, до сих пор почти всю экосистему пилят майки.
Т.е он серьёзно думает, что в шарпе нет того, что спиздила джава из божественного сишарпа? Пиздец...
>И 0, ноль блядь на шарпе. Ноооль.
Ну и что?) Зато у них есть Unity -- можно сказать феномен эпохи, породивший целый жанр проклятых васянских игр в стиме)
Все айти стоит на пиздинге чужих идей, так всегда было. Новый -- только раст с его борроу-чекером, и то хз стоило ли оно того.
Стримы кстати спижжены нихуя не с линка, а с ФП.
Хммм даже блять не знаю почему для шарпа меньше проектов! В дотнете все для разработки идет из коробки от мелкомягких, а не бесконечные мавены, градлы, анты, томкаты, нетти, гласфиши, жексоны, гуавы, ломбоки прочий мусор для крудошлепства, часть из которого остановилась в развитии на 8 версии
Так коробочность шарпа это не фича, а говно. Из-за этого шарп и остается майковской игрушкой несмотря на попенсорс. На жабе у каждой крупной компании есть свои попенсорс проекты от хадупа или кафки до хибера, эврики или собственной жвм.
Плюс есть куча компаний, которые живут на жвм-продуктах. Жидбрейнс, пивотал, эластик.
И зоопарк это не минус, а показатель конкурентности и возможность выбора. Есть задачи, где нужен грудел, а есть где и без него збс. В большинстве проектов нахуй не нужна нетти, хватает и томката. А тут и сервлеты уже есть асинхронные. Взлетят - хорошо, не взлетят - сдохнут и хуй с ними.
А вам, долбоебам, приходится жрать весь кал, который дают с лопаты майки.
Нет, нужен сертификат асса.
Лучше сертификат спринга.
Кому ты там ебальник снесешь, обосрышь? Задроченного омежку петушарпера любой джавист одним мизинцем запиздит, лол.
Планирую перейти с IntelliJ IDEA на Sublime Text.
Так тебе, мань
>Задроченного омежку петушарпера любой джавист одним мизинцем запиздит, лол.
Представляю твое ебало грязное индусское, как ты своими немытыми руками по засранной клаве хуячишь со злостью потому что я в очередной раз дал пососать джава чмонькам в их же треде.
Хуя маня проекции.
Если сам без гуглежа ответов этот курс прошел, то неплохие шансы быстро дойти до сотыги. Задания там несложные, но поставлены коряво. Я только на 90% прошел в свое время.
Теперь нужно только git, jdbc, spring(core, boot, web-mvc, test). Ну и желательно docker, spring-data, swagger.
На хуй.
Лучше курсы Трегулова. Там всё куда понятнее.
Меня в моей мухосрани недавно взяли только на 30к недотестером. Сижу смотрю/читаю мануалы по продукту, потом постмен/робо 3т.
Зато вкат ненапряжный(джве+ недели), так как весь отдел такие же новички. И коллектив вроде норм.
Буду постепенно автотесты изучать, как чуть освоюсь.
То есть 26к вкатутось на 1.3к рубчиков. Это он минимум 3кк(минус комиссия) на вкатутосях заработал. Это с условием, что брали по одному курсу и без скидки никто не брал. Года за три.
>и без скидки никто не брал
Там всегда скидки, я вообще за 890 рублей покупал после того, как спиратил, поскольку очень годно объясняет. Я у него два курса купил, ещё два так и остались спираченными.
И курс этот года с 2015, но он его обновлял.
И не 3кк, а 30кк.
Есть.
Нет, выкатывайся обратно.
На мидла не реально. Только в совсем говноконтору. Не бывает таких петов, чтобы ты на них на джава стеке на мидла вкачался. Но если типа умный можешь пройти в банк сразу за год задротства. Там вроде все джуновские вакансии позакрывали. И стажировки тоже. Но может если будешь сильно долбить мидловские вакансии и тебя позовут на собес - то возьмут на трейни+(любой вкатун это не джун, но может стать джуном за время онбординга) через мидловскую вакансию.
В тиньке вон алгоритмическими задачками правда пропускают. И вряд-ли ты сможешь за год подготовиться и к языку с фреймворка и к алгосам.
Ну и в большой компании тебе лычку мидла в первые полгода тоже не дадут. Разве что через полгода опыта, как только пощупаешь проект сразу идти в другой банк и обманывая насчёт опыта пробиваться на мидла на 2 сотыги.
>windows
>программирование
И типо мне есть смысл дальше рассматривать код в видео и пояснять, что не так? Шаг 1 - ставь fedora, ubuntu или opensuse linux
Соси хуй, быдло залетное. Признайся, под грефом гребешь? Только там животные ебучие вместо макбуков или линухи заставляют на винде сидеть
Поясни какие задачи я не смогу под виндой выполнить? Могу Линукс накатить как второй ос но понять не могу зачем пока что
Не слушай этого сердобольного. Просто кидай ему в ответ на каждый его вскукарек вывод своей проги. Зря писал что-ли?
>Могу Линукс накатить как второй ос но понять не могу зачем пока что
А зачем? В десятку сейчас буквально встроен линукс.
У нас в маленькой галере на 10 жавистов половина сидит на убунте, половина на Винде+всл. Проблем из-за этого не было. Все дев окружение в докер или на девсерверах. Клиент для ssl у меня на Винде есть.
Админы поставили всем Винду, кто захотел переставил и сам потом весь корпоративный софт ставил. Мне лень было. Если убедишь, то тоже могу накатить убунту в следующем месяце.
В убунте убогий Gnome стоит, который затачивают под макось и кладут болт на удобство и наглядность в угоду дизайнерским заскокам разработчиков. В итоге там здоровенные иконки в полмонитора с маленькими надписями, которые ещё и не отображаются целиком.
Так что если и ставить линупс, то только на базе KDE. Там и гибкость настроек и куча плагинов. Да и просто приятный визуальный стиль, который можно дополнительно ещё настроить под себя.
Че за бред? Щас бы судить по официальным репозиториям. Серьезно? Там и npm не всегда последний, и че? Тоже не поддерживается?
Ставишь SdkMan и получаешь всю палитру жвмов от восьмерки до двадцадки от разных вендоров, с бонусной возможностью чередовать их левой пяткой ноги.
Ахахах прыщебляди сами придумали себе проблемы и теперь их героически решают, когда на нормальной операционной системе можно просто скачать установщик нужной версии с официального сайта.
Любитель собирать из исходников, ты?
Как же вы заебали со своими алгоритмами
1.Не доставточно оопшно - 18-20 и 22-24 код повторяется. Сделай отдельный метод который принимает String[] и возвращает рандомное слово из него.
2.Для целых чисел обычно используют java.util.Random/SecureRandom или java.util.concurent.ThreadLocalRandom.current().nextInt() а не java.lang.Math.random().
3. Лучше все не константами хранить, а читать из текстового файла. Можно при запуске приложения считывать из файла в лист/массив. позволит не пересобирать проект, а просто поменять файл/конфиг научишься IO пользоваться
4. List удобнее массива в большинстве случаев. Особенно когда до стримов дойдешь.
5. не слушай долбоеба >>14123 . Джава платформонезависима. Линукс не стоит потраченных усилий на вкате. Но консоль все же поставь - например с гитом идет в комплекте, ее(bash) можно в идее включить в настройках вместо cmd.
Если не будешь их нигде применять (читай решать медиум-хард задачки на литкоде), можешь действительно читнуть 1 книжку, грокаем алгоритмы, и пойти дальше зубрить аннотации спринга, это всяко полезнее.
Решай жёлтые задачи на литкоде.
И то и то хуйня из под коня.
Java EE/Jakarta EE уже легаси. Да и сомневаюсь что там есть бут и такое же количество интеграций всего.
>Spring Framework 6 and Spring Boot 3 based applications will require a minimum of JDK 17 at runtime, as well as a minimum of Tomcat 10 / Jetty 11 (for Jakarta EE 9 compatibility).
Потому что Spring это имплементация, а Java EE - спецификация.
Кто юзал грааль в кабаньих проектах, обязательно покупать подписку у оракла?
Прям как jdk да. Не понимаю лицензию, так понял для прода он платный
https://www.oracle.com/java/graalvm/
Но ведь оракл съебал из рашки и навреое можно забить. Как задетектят, что грааль использовали для приложения? Никак
Так спринг в какой то мере уже использует Java EE. К примеру, под капотом по умолчанию в спринге --- Томкат, а Томкат --- референс-имплементация сервлетов, которые в свою очередь --- часть --- часть web-профайла Java EE. Кроме того, никто не мешает на спринге юзать JPA и Jax-RS --- а они тоже спеки из Java EE.
Умерло не столько Java EE, сколько идея все-в-одном-контейнеров, которые целиком и полностью мэнеджат ресурсы приложения в себе. Время показало, что такая схема недостаточно гибкая и адаптируемая. Часть стандартов, вроде JSP, JSF, EJB или JAX-WS легасизировались либо из-за устаревания, либо из-за изначальной неудачности идеи, но другая часть живет и здравствует по сей день.
> уменьшить количество зависимостей между сервисами, поменяв прямые вызовы методов на паблиш ивентов.
Удачи потом это дебажить, а остальным разбираться в этом волшебстве.
Ну быстрый типа он.
Можешь попробовать. По сути , ивент лисенер - обсервер, который не надо самому собирать. Ну и если ты не хочешь быть прибитым гвоздями к спрингу, лучше пбалишер и лисенер вынести куда-то отдельно
Сколько ни искал видел одни пет клиники с богатой доменной моделью в 5 классов
Джуны/миддлы ковыряют ровно то же, что сеньоры.
Примеров там нет, никто не будет писать 500к строк кода ради примера. Реальных проектов там тоже нет, они не нужны ником, кроме одной конторы, да и NDA.
ЕБАНТЯЙ
Быстро стартует.
У меня в микросервисе доменная модель будет сущностей на 7-8. И в остальных так же. Максимум в одном 15. Всего сервисов штук 15 будет. Итого получается около 100, из которых прям уникальных штук 30, остальное частичные копии.
А до этого был на монолите и там тоже самое, просто это не микросервисы, а подмодули мавена. Ну из тоже было штук 20 и по 5-10 штук сущностей и у них уникальности немного больше.
Нигде таких проектов в открытом доступе не видел. Там обычно большая часть логики это интеграция с внешними сервисами.
> Меня скоро будут дрочить на собесе. Что подрочить мне чтобы не обосраться?
Членик в рот аноньчика с трэдье
Ты же настоящий программист? А не нёрд или тестировщик обоссаный?
Врёти. Майнкрафт как и моды написаны на джаве, а значит это можно отлаживать в дебаг режиме. У меня 1.7.10 супер старая версия, не играю на новых
Да прав наверно по поводу алгоритмов.
Для крудошлепства на джаве, где все уже написано умными людьми - по алгосам нужно знать общие принципы, какие алгосы на каких структурах бывают, какая у них сложность по времени/памяти и в каких внутренних/внешних библиотеках они лежат(хотя даже это тебе понадобится в 5% случаев, чаще всего никого выбора алгортма не нужно будет).
Самому вертеть деревья это дроч. Но дрочь с заделом на то, что если сам сможешь покрутить, значит сможешь понять что использовать среди написанных инструментов.
С другой стороны по алгосам ебут чаще большие продуктовые компании, а аутсорсы даже большие нет. Возможно потому, что большие компании думают, что возможно ты не просто круды писать будешь, а еще и инструменты какие-то, а там алгосы нужнее.
Вы видите копию треда, сохраненную 15 октября 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.