Это копия, сохраненная 2 февраля 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?
А: Нет, не поздно.
Q: Cобираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?
A: Да хуй знает, от тебя зависит насколько ты толковый и умеешь себя продать.
Q: Хули все книги на английском?
A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Что скажете за джавараш?
Если вкатываешься с нуля, то можешь написать пару "хеллоу ворлдов" до 10 лвла. Дальше курс рассчитан на ленивых и не умеющих читать книжки людей. Количество говнокода зашкаливает, годных задачек пару штук на весь курс. Если усидчивый, читай книги и делай тестовые задания. В любом случае решать тебе.
https://github.com/qqqlll/Java-Thread/wiki
Жить до весны без джава-тредов?
В любом случае, нумерация давно проёбана, и этот должен быть чуть ли не сотым, так что похуй
И вот думаю - будет ли какой-то буст в должности/зп, если я ещё и бекенд смогу написать.
Пересечёт горизонт событий двача
В принципе, если ИТ-шник меняет род деятельности, его мало кто будет считать полным джуном без опыта, так что хоть какой-то толк от этого обычно есть.
На МЛ на джаве даже не смотри, всерьёз этим никто не занимается.
Это вторая причина - если я иду на джуна по машобу без опыта вообще, это будет труднее, чем если я поработаю джуном уже какое-то время, хоть и в другой сфере. Раз работал - значит не дурак, что-то делал.
Но у меня скорее вопрос в том, возможно ли как-то на будущей работе будет совмещать бекенд и мл, этакий фулстак, или обычно такие разные сферы не совмещают?
бамп
Я примерно полгода как перекатываюсь в java-бэкенд с другого стека — за плечами 10 лет разработки на Delphi под десктоп. Работаю сейчас на должности ведущего разраба, пытаюсь апплаиться, естественно, на что-то поскромнее — миддла или джуна, как повезёт. Знаю Java Core, могу написать многопоточное приложение (и писал их на своём стеке), сервлет какой-нибудь, поработать с базой через JDBC, худо-бедно использовать Spring IoC, Maven. Всякие общие знания типа SQL, гита и понимания аджайл процессов при мне. Алгоритмы и структуры данных тоже знаю. Есть хороший разговорный английский и джентльменский набор софт-скиллов. На гитхабе есть парочка проектов, пусть небольших, но со своей идеей, не laba_2.
Так вот. Во всех компаниях мне отказывают примерно с такой формулировкой: не хватает коммерческого опыта™ на джаве или хотя бы контрибьюта в опенсорс-проекты. Утверждают, что таково мнение именно разработчиков.
Не то чтобы я не готов контрибьютить в опенсорс (и мне придётся это делать, раз таковы правила игры). Но скажи мне, анон, почему разработчики с таким предубеждением и недоверием относятся к своему собрату, сложившемуся профессионалу с солидным опытом? Как будто каждый, кто меня собеседует, обжёгся в своё время на свитчере с другого стека, который не смог освоить бэкенд на джаве и был с позором уволен... Сам понимаю, что звучит нелепо, и поэтому не верю. Я готов услышать это от хрюши на телефонном скрининге, но слышать такое от опытного разработчика, человека умственного труда, для меня странно.
А ещё говорят — кадров нет. Что я делаю не так, анон?
Знакомый 3 месяца ищет бекендера на го, готов уже взять человека, чтобы он выучил го вместо того, на чём пишет сейчас и писал на нём
В чем преимущество Clojure перед Java? В Clojure треде рассказывают прохладные истории о том как Кложур всех подебил, но мы-то знаем, что это динамикопараша, где нужно постоянно проверять какого типа переменную ты передаешь в функцию, а не то в рантайме все упадет.
У борщехлёбов "победители" каждый день: то хачкиль, то ML, то эрланг, то кложура, и это всё вотужезавтра убьёт ООП и вытеснит джаву/плюсы/питон/пхп. Пусть варятся и дальше в своём мирке, зачем на них обращать внимание?
Ну тащемта смысл джавы в последние годы сильно под вопросом. Нахуя нужна мильтиплатформенность из коробки, если все всё в докере собирают под конкретный имедж? Хочется мелких образов, а не сотни мегабайт jre. Всякие облачные плюшки, которые раньше были только у джавы в нормальном виде, типа сервис дискавери, сёркит брейкеров и т.п., теперь есть у всех, благодаря тому же докеру и кубернетису.
Джава, конечно же, никуда не денется, но в целом, её основные плюсы уже не такие и плюсы.
Да понятное дело, что люди с опытом нужны всем. А рынок наводнен неумелыми вайтишниками.
Мы за 2 года захайрили только ДВУХ нормальных сеньёров на джаве. Двух. За 2 года. На джаве. Понимаешь? Это нюанс не го, а всего рынка. Нормальные девелоперы либо съёбывают, либо оседают в конторах уровня джетбрейнс.
Возьмите слабых и молодых рабов на вырост, и заваливайте работой, чтоб учились.
Как на ферме выращивайте синьоров.
Ты не поверишь, но у нас есть целые команды, где одни джуны. У нас есть своя джавашкола, где подготавливают юнцов, но кто-то же должен работать в конце то концов.
>>38018
Народу приходит дохуя. Рили по 3-4 собеса в день бывает.
Не проходят, потому что тупые. Не знают ни структур данных, ни базовых вещей, ни паттернов, ни особенностей фреймворков, нихуя. Просто, блять, отбросы. Чтобы попасть в нормальную контору, достаточно пару книжечек прочитать, да видосики посмотреть. Нет, блять, как аннотации в спринге работают никто не знает, что за паттерн такой "прокси" тоже хуй кто знает, как имьютабл объект с бидером написать - тоже хуй. И хэшмап это у них коллекция.
Куда писать?
Ох лол, перекатываюсь из своей профессии. Как раз думал про ГО, но все пишут, что чистый го не нужен, что работы мало.
Пардон за флейм
У спринг бек джуна на порядок больше знаний, чем у html/css/jquery/bootstrap верстальщика
Главный смысл джавы, имхо, в самом устройстве языка, в том, что она позволяет писать реально большие системы, которые при этом будут ещё и надёжными. И без потери качества обходиться толпой обыкновенных джава приматов, направляемых парой толковых синьоров.
>>38026
Хм. А вы не в ДС2, случаем? Не хотите взять стронг ждуна с перспективой быстрого роста?
>>37856-кун
Это уже фронтенд junior, следующая ступень после верстальщика, который только пилит лендинги. Зрпл уже за сотку.
>Главный смысл джавы, имхо, в самом устройстве языка, в том, что она позволяет писать реально большие системы, которые при этом будут ещё и надёжными. И без потери качества обходиться толпой обыкновенных джава приматов, направляемых парой толковых синьоров.
Нет. Весь смысл джавы в "Write once, run anywhere", который напрочь убивает докер. Более того, до 11 джавы, жвм только мешает работать, из-за неумения работать с си-группами линухи. Ну и ахуенный тулинг - тоже неебический плюс джавы, которые, как выясняется, тоже особо не нужны.
Если знаешь функциональную разницу между мапами и другими коллекциями, есть ли разница, как её там формально называть? Эта терминология даже не применяется нигде, кроме вот таких собеседований.
У меня сестра работает верстальщиком на вырост, примерно за те же деньги. Учит Vue
Какие такие? Вот серьёзно. Какой ответ ты ожидаешь на вопрос "что такое хэшмап"?
"Готов сосать за 20к в месяц"
Как минимум, про то, причём тут "хэш", это сразу про "иквалс и хэшкод" вопрос, про то, как это внутри хранится, бакеты, что будет, если хэшкод одинаковый у ключей, можно ли нулл засунуть и т.п.
И что, никто на это не может ответить, и все ничего не могут сказать, кроме того, что это коллекция?
Это не было бы классическим вопросом на собесе, если бы все на него знали ответ.
Ну мап это по определению не коллекция, хотя входит в коллектион фреймворк. Другой вопрос зачем джуну знать, что там под капотом (бакеты и т.п).
Меня спрашивали только про различие между пикрелейтед.
Мап разве входит в jcf ?
Ну, я сравнивал джава-тырпрайз проекты, которые писались в нашей конторе, и почти аналогичные дельфийские. Delphi, например, позволяет очень быстро написать десктопную поделку с красивыми формочками (чем в-основном и занимается наша компания), но большой проект это кошмар: постоянно всё разваливается, нет нормальных библиотек, сильное связывание, проблемы с модульностью в целом и прочий ад. Если падает у заказчика, то конкретно и с грохотом.
А джава это благодать, незамутнённое ООП, огромное коммьюнити, можно отдать отдельные кусочки проекта новичкам вроде меня в 2011 году или нашего тогдашнего админа, и не бояться, что из DLL прилетит исключение и порушит всё нахуй.
>>38084
>>38073
На самом деле, тут есть о чём порассуждать. Map не наследуется от Collection, зато Set наследуется. А внутри у его основных реализаций, внезапно, сидит Map.
Казалось бы, Map можно было сделать коллекцией элементов Entry, но разработчики языка всё-таки разделили Map и коллекцию. Мне кажется, тут различия чисто концептуальные. Collection содержит элементы, а Map задаёт связи между объектами.
> В чем преимущество Clojure перед Java?
нет ваканский
соответственно можно лампово сидеть дома и писать код, пока джава дебилы выгорают в своих офисах
Что это значит? Где тут скрытый подтекст?
Денег готов дать.
Говори то, что от тебя хотят услышать.
Ровно это и значит. Хочет понять, насколько тебе комфортно работать, и что он должен сделать, чтобы тебя удержать. Если ты отмалчиваешься, то, наверное, уже подыскиваешь новое место и ходишь по собесам (так он думает). Поднять тебе зарплату это самый простой выход для него. Так что помоги менеджеру и просто попроси больше денег.
Бамп вопросу.
ORM вообще придумали не для повышения производительности.
Да нихуя они не улучшают, блеать. Там столько нюансов, что удобнее и быстрее поддерживать по DAO для каждой используемой СУБД. Все эти хибернейты и дата жпа - это вещь в себе.
Что работы дохуя. И зарплаты тоже очень даже ок.
Ну, тавщемта, можно навернуть что-то похожее на множественное наследование состояния через внутренние классы. Только приличным людям такое говно лучше не показывать.
Ты опять закопался в ненужные мелкие подробности никому не нужной херни. Нет, не часто.
создаешь Media с путем к видосу, передаешь его в MediaPlayer, этот плеер пихаешь в MediaView
А там уже нет бесплатных 10 уровней, остался только самый первый. Ну, и пошли они нахуй тогда.
Почти все приличные конторы, имеют под собой джавашколу(если контора есесно на джаве специализируется). Весь потом джунов идёт оттуда, туда даже экзамены есть вступительные и собесы.
В конторе, где я работаю, каждые 2-3 месяца стартует новый курс, человек 15, выпускников, практически с 99% вероятностью пристраивают куда-то в контору. Я туда уже пару приятелей пристроил, один уже доучился и работает, второй тока доучился и ждёт приложения.
Гугли.
В моем городе на них бешеный конкурс. Ну, так по крайней мере было 2 года назад. Как сейчас не знаю.
Потому что здесь одни зажравшиеся москвичи. Это видно по дневной и ночной активности треда.
Себе прошлому посоветовал бы читать книги. Впрочем, совет бы не пригодился, я так и учился.
Зависит от конторы.
Ну конкретно, как начать, я хуй знает. Просто устроился за копейки работать в какой-то никчёмный стартап в 1.5 программиста, через 6 месяцев поменял работу, потом снова через 6 месяцев поменял, потом уже был год "коммерческой" разработки. И прилип на 6-7 лет, стал сеньёром и дальше уже в кровавый интерпрайз ушёл за килобаксы работать.
Решает практика. И сертификаты. ОСА достаточно простая хуита, но база хоть какая-то усваивается. Любую книжку находишь и вперёд.
Ну и дефолтный набор книг, типа эффектив джавы, дизайн паттернов и клин кода.
Я их прочитал достаточно поздно, и пару лет были явно проёбаны на написание говнокода.
И за трендами следить надо. Конференции смотреть и т.п.
Касательно Core, у Кея Хорстманна норм книга, на мой взгляд. Ещё что-то читал, но не помню.
лучшая книга для ньюфагов - Head First Java
читаешь от корки до корки, потом можно Хортсманна или Эккеля для закрепления на а дальше уже по ситуации
Типа что бы со стандартного выхода считалось только 6 цифр
Уже нашел subList, создает вьюху на оригинальный лист.
Я уже скачал, спасибо. Вроде нормально идет.
Спасибо.
>в ненужные мелкие подробности
Ну, RequestToViewNameTranslator ведь важная часть MVC, разве нет?
>RequestToViewNameTranslator ведь важная часть MVC
С практической точки зрения не особо, особенно учитывая неактуальность серверных шаблонов
>худо-бедно использовать Spring IoC, Maven.
Вот это надо задрочить, IoC пока что единственный паттерн от которого хоть какаято польза
ну возьми и обнови
Всё с ними так, просто последовательный код без управляющих конструкций и из одних вызовов функций, как правило, читается легче, ибо это интуитивно понятнее для человека.
Желательно с аргументацией
Конечно, лучше ловить. Пользователь должен видеть вменяемое сообщение об ошибке, а не огромный стектрейс.
Благодарю!
Если в общих чертах, то исключения, которые отражают ошибки в логикебаги, типа ioob и прочего ты не ловишь. Исключения, которые отражают начало исключительного сценария ты сообтветственно ловишь и обрабатываешь. Например, юзернейм не прошел валидацию, ловишь валидейшон эксепшон, отправляешь юзеру сообщение или что там тебе надо делать, чтобы выполнение перешло из исключительного сценария в основной.
Нужно начать с того, когда обычный юзер в последний раз вводил что-то в консоли и смотрел на результат.
Thread.currentThread().setUncaughtExceptionHandler(...)
Хз, ты ведь так сразу все не выучишь. Я вот начал с 11 издания Java Core Хартсманна. Там два тома. Наверное полгода уйдет только на эти основы, т.к. я в инглише не сильно хорош + мне работать приходится, чтобы жить на что было.
А я по 1.0.2 книжку читал.
Че значит динамически? Нужен сервер-сайд рендеринг - используй ваадин и шаблонизаторы. Нужен клиент-сайд - используй js. Хочешь совмещать - пили костыли.
Ну вот смотри, у меня есть mvc и статическая html со скриптом. Как мне из mvc-контроллера передать нужные параметры в html, чтобы она отрендерилась на клиенте?
Это тоже верно, приятнее везде иметь дело с одним языком. Поэтому кто-то, наоборот, пытается jvm-языки в js компилировать. Но это не значит, что у js есть "сложности в общении" с java-бэком.
Если "MVC" здесь это веб-фреймворк spring mvc, то он годится как для серверного рендеринга с помощью шаблонов ("старый" подход), так и для создания рест-сервисов, с которыми будет общаться фронт на ангуляре/реакте/etc ("современный" подход).
Можно и совмещать - сначала рисовать всю страницу на сервере, потом какие-то отдельные свистелки делать на js. Тогда у тебя на сервере будут и шаблоны, и рест. Все на том же spring mvc. Но это тоже частный случай "старого" подхода.
>Если "MVC" здесь это веб-фреймворк spring mvc
Да, он самый.
То есть, получается, без сервисов, чисто на MVC, сделать рендеринг на клиенте не получится?
Это шаблоны же.
Рендеринг на клиенте, это когда клиент отображает данные, полученные от бэка через эти самые сервисы, т.е. да. Но, ещё раз, для этого подходит тот же spring mvc, сильно далеко ходить не надо.
Ну, я про рендеринг с использованием данных от модели. Типа, какую страницу рендерить, какие фильтры стоят и т.п. Потом уже с учётом этих данных делать реквесты к апи.
В качестве вида у тебя не html, а шаблон freemarker, twig или еще что-то, если ты про mvc говоришь.
Ненуачо, когда-то раньше вполне себе в ходу было формирование xml или json с помощью jsp или чего-то подобного.
Ничто не мешает
Бамп. Ну что никто не знает?
Бамп
pezda
У меня на компе давно было.
Её можно найти через репозиторий в шапке треда:
https://github.com/s4kibs4mi/java-developer-roadmap
Вчера распечатал и повесил у себя над столом. Правда, шаблонизаторов тех же не нашёл, и не вполне согласен с последовательностью. Паттерны я бы повыше поставил, а юнит-тестинг вообще в самое начало, да и изучение ORM-ов раньше баз данных выглядит сомнительно.
С пакетами java.* не прокатит. Сторонние jar-архивы можно "запечатать", запретив добавление новых классов в пакет. Делается это добавлением "Sealed: true" в манифест.
Разумеется, от физической модификации архива это не спасёт.
Не, именно чистый хтмл + скрипты для клиент-сайд рендеринга. Реально такое на mvc?
Ты заебал. Что такое чистый html? Статический, всегда один и тот же? Что ты в нем тогда собрался рендерить и при чем тут mvc?
Обычный .html файл. Не jsp и не шаблонизатор. Использовать в качестве вида. Чтобы он на клиенте рендерил в зависимости от параметров, переданных контроллером.
>не шаблонизатор Чтобы он на клиенте рендерил в зависимости от параметров
Нет. Тебе нужны шаблоны.
Ну можешь параметры запихнуть в URL, если их немного, jsом их читать и что-то с ними делать.
Контроллеру тогда нужно будет только сформировать нужный url и выдать на него редирект
Тому, кто в жизни не сидел за иде, понадобится хоть сколько-то времени, чтобы разобраться.
Так это ОС с ИДЕ в комплекте же.
Ты забыл упомянуть:
> Gradle
> Ant
> Functional programming
> NIO
> Memory Mapped IO
> Spring Cloud
> JClouds
Короче, весьма спорная картинка.
Ну они же good to know, почему бы и нет
Хочу писать так, как завести JSR?
Попробовать что? Я спросил, как завести JSR на это хотя и сомневаюсь, что тут кто-то в курсе, если такие уже есть - скинь, я почитаю, в чем причины, если сам сказать не можешь.
не проще сменить язык? котлин возьми
Причем тут вообще облака ? В жабе никогда не было и нет из коробки circuit breaker и т.д. то что нетфикс это написал в свое время не означает практически ничего, поддержку всего этого зоопарка из эврики и т.д они дропнули, на счёт того что жрет дохуя то специально для облаков https://quarkus.io/
Всмылсе, бля. Ты чего в сторону Eclipse пукаешь? Придешь на проект без поддержки idea, знаешь насколько сильно охуеешь?
С таких пор, что приходя на проект, там все могут работать в eclipse. Потому, что idea не всегда имеет нужный функционал. В чем команда работает в том и тебе придется.
>В чем команда работает в том и тебе придется.
С чего это вдруг?
>Потому, что idea не всегда имеет нужный функционал.
Я более чем уверен, что в идее есть абсолютно все, что есть в эклипсе и даже больше.
>С таких пор, что приходя на проект, там все могут работать в eclipse.
А я всю жизнь писал в vim. Мне теперь переучиваться?
Хуйню несешь.
>С чего это вдруг?
Например, если используются эклипсовские настройки проекта
>Я более чем уверен, что в идее есть абсолютно все, что есть в эклипсе и даже больше.
Могут быть какие-нибудь плагины, работающие с самописными фреймворками, да что угодно
>Например, если используются эклипсовские настройки проекта
Табуляции, положение скобок и т.д.? Есть линтеры и ide-независимые конфиги для такого.
>плагины, работающие с самописными фреймворками
Хорошо, что у нас такой хуйни нету, что могу сказать.
Всё это можно сказать про совершенно любую IDE.
Однажды в Индии?
Вот ты и пришёл к тому, о чем я тебе вначале писал.
Логичный ответ конечно нет, тк я не фронтенд, но мне говорили, что желательно понимать и знать, как работает это всё на другой стороне.
Вопрос прост такой - куда идти после джава кора, спринг полагаю?
Прям шарить на уровне фронтендера не нужно, но неплохо было бы иметь общее представление.
Спринг, да. Также необходимо знать хотя бы одну СУБД.
По работе может и не понадобиться, но тебе же нужно сейчас для чего-то писать свой бэкенд — в смысле, веб-интерфейс делать все равно придётся. Хотя бы для своих поделок, на которых ты будешь изучать технологии. Начни с основ, сверстай пару статичных страничек, а остальное знание придёт по ходу дела.
Спринг вообще нужно (имхо) изучать на проектах масштабом побольше чем Laba2, иначе непонятно, нахуй он вообще нужен, когда можно объекты ручками создавать.
> нахуй он вообще нужен, когда можно объекты ручками создавать
Спринг - это не только контейнер бинов, это ещё и MVC, БД и куча всего остального.
Как найти работу на Java где не будет Хубирнейта и Спрэнг Фримверка с поганым энтерпрайзом?
Если ненавидеть энтерпрайз, то больше нигде джавы и нет, кроме как в древних проектах для андроида из 2012.
Может кому-нибудь не влом немного переделать ее ?
И некоторые мимо проходящие долбоебы не понимают, что котлин есть что-то вроде диалекта джавы, нисколько её не отменяет.
Двачую просветлённого
upd
А, не, ты энтрепрайзе не любишь
Тогда в десктоп разработку или говноигры на юнити на очень похожем языке.
Не всё так просто. Сишка вот не считается диалектом ассемблера.
Языки для JVM могут компилироваться в байт-код минуя жаву как язык. И это будут совершенно разные языки, но для одной платформы Java.
Впрочем, это не отменяет того, что хуй на котлине что-то напишешь без знания жавы.
>для одной платформы
>хуй что-то напишешь без знания жавы
Об этом и речь. И даже если смотреть только на сам язык, это совсем не как сишка для ассемблера и не как скала или кложа для jvm.
Не, я живу в однухе с сестрой, братом, бабкой, дедом и двоюродной сестрой с её семьёй.
Завидую тебе, что твоя срущая мамка в соседней комнате открыла школу сранья 21. Идешь такой на кухню за бутером и учишься.
Да, хуево жить без школы в соседней комнате.
Устарела в чем именно? Еще там есть практические задания к каждой главе, я как раз такие искал. После двухтомника Хорстманна самое то.
После двухтомника хорсмана тебе уже на галеру пора валить, а не блинова читать.
Держи в курсе.
обоссу тебя на митинге
Зачем тебе это. Одумайся.
Не могу понять, зачем нужны абстрактные классы.
Вот интерфейс и его имплементация мне понятны, любой класс это и есть интерфейс+имплементация, в c++ не зря разносят интерфейс в .h файл, а реализации методов в .cpp файл, в джава это все делается в 1м файле,
но я не могу понять зачем нужно это промежуточное звено в виде абстрактного класса
Но при этом эти же концепции обеспечивают полиморфизм, то бишь когда в зависимости от ссылки на объект он ведёт себя по разному с одним и тем же кодом,
так за обеспечение какой концепции ООп отвечают эти 2 ключевых слова?
>>42329
> Что появилось в java раньше интерфейс или абстрактный класс ?
И то, и то есть с самого начала.
> Не могу понять, зачем нужны абстрактные классы.
Чтобы частично реализовать какую-то сущность. Интерфейсы изначально могли содержать только объявления методов, реализации не было. Без абстрактных классов пришлось бы копипастить код из нескольких реализаций интерфейса. А так можно вынести реализацию в базовый класс.
> за обеспечение какой концепции ООп отвечают эти 2 ключевых слова?
Ты исходишь из предпосылки, что понятия полиморфизма и наследования не пересекаются. На самом деле пересекаются, и ещё как. На это это и единая парадигма, а не просто набор идей, что идеи взаимосвязаны.
>Интерфейсы изначально могли содержать только объявления методов, реализации не было. Без абстрактных классов пришлось бы копипастить код из нескольких реализаций интерфейса. А так можно вынести реализацию в базовый класс.
Любопытно.
А вот начиная с 8ой джавы в интерфейсе можно и final static переменные объявлять и даже реализовать методы с помощью ключевого слова default,
это внедрили для того случая, когда нужна реализация метода, но не хочется тащить за собой все поля и остальные метода абстрактного класса,
но если бы эта возможность была в самом начале, то вполне возможно, что абстрактные классы были бы вовсе ненужны?
>Ты исходишь из предпосылки, что понятия полиморфизма и наследования не пересекаются
Ну, они конечно пересекаются, но я скорее исходил из того, что это же разные понятия
кхм, в общем ладно, на ООП терминах можно кого угодно запутать
>зачем нужно это промежуточное звено в виде абстрактного класса
Затем, что интерфейсы не могут содержать полей, и чтобы избежать копипаста кода.
Ну, они могут содержать
public static final
константы,
а остальные поля можно и от обычного класса занаследовать,
разве нет?
>а остальные поля можно и от обычного класса занаследовать
А имплементации методов тоже в этом обычном классе писать?
Константы в интерфейсах можно было всегда.
В отличие от default-методов, в абстрактном классе можно делать конструкторы и приватные методы. Есть и другие тонкости.
Об ООП на самом деле можно говорить вечно и ни к чему не прийти. Лучше вначале особо не задумываться об этом, а вместо этого выучить основные подходы и кодить.
И в чём проблема?
>Здрасте, хочу у вас бесплатно пойти работать, месяца за 3 выучу основное, что вам необходимо на позицию джуна, после чего попрошу у вас зарплату, а эти 3 месяца буду учиться на ваших проектах и делать совсем элементарные таски
В интерфейсе ты объявляешь какие-то методы. Этот твой обычный класс добавляет какие-то поля, и имплементит интерфейс, затем какой-то класс его расширяет. Как ты предлагаешь создавать обычный класс без реализаций методов, но имплементирующий интерфейс?
как же вы меня доебали пихать всё в Map<case, lambda с логикой>.
>
>хай java макаки, среди вас есть хейтеры switch-case?
>как же вы меня доебали пихать всё в Map<case, lambda с логикой>.
>>42463
>
>не понял тебя
поясняю
вместо switch() {
case 1:
break;
case 2:
break;
}
писать что-то подобное
static Map<Integer,Function<>> PROCESSOR = Map.of(1, this::processor1);
void processor() {
blabllabla
}
p = PROCESSOR.get(case)
if (p != null) {
p();
}else {
log.error()
}
>
>хай java макаки, среди вас есть хейтеры switch-case?
>как же вы меня доебали пихать всё в Map<case, lambda с логикой>.
>>42463
>
>не понял тебя
поясняю
вместо switch() {
case 1:
break;
case 2:
break;
}
писать что-то подобное
static Map<Integer,Function<>> PROCESSOR = Map.of(1, this::processor1);
void processor() {
blabllabla
}
p = PROCESSOR.get(case)
if (p != null) {
p();
}else {
log.error()
}
>Это я понял, не понял, что тебя доебало.
в чём примущество данного подхода?
читать же не возможно такое
Возможность использовать типы, по которым не работает свич. Классы, какие-то свои объекты и т.д.
>Возможность использовать типы, по которым не работает свич. Классы, какие-то свои объекты и т.д.
попався калоед
>начиная с 8ой джавы в интерфейсе можно и final static переменные объявлять
Начиная с 1.0
пофиусил тебя
Нету.
Орнул с этого иностранца
В том, что там среди технологий JSP, Ant, UML, Eclipse — мягко говоря, уже не самые актуальные. Они и на момент выхода книги были несвежими (хотя я UML зачем-то выучил в 2013 году, да так ни разу и не использовал).
>хай java макаки, среди вас есть хейтеры switch-case?
>как же вы меня доебали пихать всё в Map<case, lambda с логикой>.
Шило на мыло. Нормальные хейтеры предлагают вместо свича использовать полиморфизм.
>но если бы эта возможность была в самом начале, то вполне возможно, что абстрактные классы были бы вовсе ненужны?
Ну смотри, тут различия концептуальные. Абстрактный класс это сущность, т.е. то, чем является объект. У него есть состояние, есть поведение. А интерфейс это интерфейс, способ взаимодействия с объектом.
То, что в новых версиях джавы творят с интерфейсами, это сорт оф костыли и не является определяющим для понятия интерфейса.
> UML
> не самые актуальные
Мда, а мне когда-то затирали, что раз я хочу стать разрабом, то обязан его выучить.
>так ни разу и не использовал
Странно, я вот с диаграммами состояния и последовательности сталкиваюсь регулярно.
Ну хз. По-моему, его уже глубоко забыли, похоронив вместе с разговорами про CASE-технологии.
Просто хуй забили на все эти правильные рамочки и стрелочки, рисуем схемы как умеем. Да и то редко, документация у нас не в почёте. Не говорю, что это хорошо, но такова реальность.
Может быть, в аутсорсе каком-нибудь и принято всё UML-диаграммами документировать, но у нас продуктовая компания, так что говнокодим в своё удовольствие.
>Да и то редко, документация у нас не в почёте.
В этом и проблема. Когда компания достаточно большая и документация передается туда-сюда, нужно, чтобы она была написана языком, который все могут понять. В этих диаграммах ничего сложного нет, чтобы досконально их учить, я тоже рисую как умею.
Пиздец, UML-диаграммами принято ПРОЕКТИРОВАТЬ, БЛДЖАЖ, АРХИТЕКТУРУ, НА НИХ ТЗ и фичереквесты, БЛЯДЬ, НОРМАЛЬНЫЕ ЛЮДИ АРХИТЕКТОРЫ ПИШУТ, а не документируют сделанное..
Воу-воу, полегче. Я это и имел в виду, неправильно выразился. У нас обычно так: устраиваем брейнсторм, малюем схемы на доске как умеем, фоткаем всё это безобразие, фоточку прикрепляем к задаче.
>В этом и проблема. Когда компания достаточно большая и документация передается туда-сюда, нужно, чтобы она была написана языком, который все могут понять. В этих диаграммах ничего сложного нет, чтобы досконально их учить, я тоже рисую как умею.
А то! Самому выучить нетрудно, трудно заставить сделать это всех вокруг. Ну, и компания небольшая настолько, что большая часть проектов пишется одно в жало одним разрабом, и средний bus factor близится к единице.
Если ты хочешь сказать, что у нас всё дерьмово устроено, то ты абсолютно прав, поэтому я в настоящее время и перекатываюсь из этого уютного адочка в нормальную компанию с нормальными процессами.
хуле сложно так uses-хуюзес with-хуиth
нахуй эти module-info надо было делать такими сложными?
Посоветуйте годный материал по коллекциям, желательно на русском, но можно и на английском.
У Джоша Блоха вроде бы есть книжка по коллекциям, но её я не нашел.
ну короч, если ты знаешь что такое сет, лист, очередь, мапа и бинарное дерево, то ты знаешь всё о жабаколлекциях.
Я изучал по книжке Хорстманна + оракловой документации. Ну и да, для начала нужно понимать алгоритмы и структуры данных, а именно: связный список, очередь, стек, бинарное дерево, хэш-таблицу.
Это говно!
var soska = you();
Не всё так однозначно. Судя по опросу на стаковерфлове, бекендеров больше, чем фронтендеров. Да и в современном фронтенде требования выше, чем раньше.
Мобильное - это считай фулл-стек. Тебе и верстать нужно, и ебаться с логикой.
Значит, она не для нубасов. Но всё равно попробуй почитать. Если ничего не понятно, ищи другую.
Имел в виду скорее серверный бэк
>>43210
>>43211
Спасибо за ответ. Так-то понятно, что в мобилках, кроме вьюхи, еще и логика в контроллере. Просто мне всегда казалось, что именно в эпоху мобильных приложений, которые все клиент-серверные и их 90%, в самой моб приложке не так много логики осталось. Грубо говоря, тупо веб-фронт, но только в профиль.
>еще и логика в контроллере
Тфу ты, само собой, она не только там. Еще и от архитектуры зависит. Ну вы меня поняли, я надеюсь.
Часто бывает и наоборот. Мобильная апка - это обычно толстый клиент, у которого сервер только для синхронизации. Иначе смысла делать мобильное приложение и нет, раз можно сделать мобильную версию сайта.
>Lineage II
>актуально в 20__20
Я думаю, что это вообще диаметрально-противоположные понятия, анон.
Наверное ты прав. Но я все же думаю, что мобильный апп, особенно если он нативный - это все же больше про удобство UI/UX и интеграции с ОС клиента, нежели про обработку логики. Если у тебя без бека приложка бесполезна (тупо клиент-сервер), то почему бы не вынести обработку логики на сервер, чтобы сделать мобильный апп быстрее? А еще, во-многом, просто из-за соображений безопасности логику лучше инкапсулировать в бэк.
Но это всего лишь моё мнение дилетанта, я и не прогер толком
>Иначе смысла делать мобильное приложение и нет, раз можно сделать мобильную версию сайта.
Львиная доля приложений это и есть не более чем мобильная версия сайта по сути
Приоритеты поменялись, если в начале нулевых все считали что нафиг обработку на клиенте, могучие сервера всё сдюжат, нафиг десктопный софт айда всё на клиент-сервер, то сейчас с приходом облаков у чужого дяди, как основного способа развертывания приложений, сервера стали не сдюживать, а большая нагрузка это дорого, потому что в облаках оплата понагрузочная.
И че? Я хочу, чтобы был метод toArray без парметров, который внутри делает то же самое, что метод с параметром. В 99% случаев там именно новый массив нулевого размера.
Так и вызывай без параметров, получай Object[]. Массив передаётся для контроля типов. Имхо, не самое большое неудобство в жизни разработчика.
https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html#toArray--
Acer Aspire 3 A315-21-61BW (NX.GNVER.108) (AMD A6-9220 2.5GHz/15.6"/1366х768/4GB/128GB SSD/AMD Radeon R4/DVD нет/Wi-Fi/Bluetooth/Linux)
Что толстого? Такое желание у меня. Чтобы в кафешках сидеть с ними и печатать с чашкой эксперессо. Все же лучше чем дома, там прокрастинация часто атакует.
Вот-вот. Сейм.
Иди посмотри, какой он мак купит за цену своего бюджетного ноута. С синкпадом ситуация не особо лучше, я думаю.
Я сам за маком сижу, и эта не тот ноут, который нужно брать "бюджетно".
По факту, я бы ему разве что ноут на интеле посоветовал взять, и самый минимум - 8 гб ОЗУ, а лучше 16.
>Чтобы в кафешках сидеть с ними и печатать с чашкой эксперессо
Я сам от этого страдаю. Но это не поможет, потому что ты там так же будешь харкач скроллить сидеть. Тебе нужен "внешний цербер" такой, как препод в универе на паре, на которые ты должен ходить.
>>43581
>я в офис хожу только потому что дома концентрации хватает ровно на 5 минут
А вот за офис двачую, даже что-то учить там легче, в рабочей обстановке с четким графиком "пришел-обед-ушел".
Как это сделать?
Иными словами, вот есть обычный Thread.sleep (1000).
Поток спит 1000 мс.
А мне нужно, чтобы он уснул так, чтобы его можно было разбудить до конца заданного сна.
Что-то в духе Thread.sleep (a < b);
На ум приходят только костыли с циклами и опросами.
То есть это че, нормально писать хуйню вида
int timer = 1000;
while (timer > 0) {
Thread.sleep (1);
--timer;
}
void restart () {
timer = 1000;
}
?
Как-то нехорошо процессор ебать тактами каждую мс.
Можно уменьшить степень квантования, но это один хуй сорт говна.
В общем, мне нужен код, работающий как выше, но только без сраных циклов.
Ну вот что ты мне это васянское говно суешь?
Даже такой тупездень как я и то вижу пару потенциальных вариантов, например, через прерывания.
Другой тред может принудительно вызвать прерывание треда, тот поймает исключение, сделает свои дела и сам себя перезапустит.
Тот же Thread.sleep() вполне себе прерывается.
И никаких циклов и прочей хуйни не надо.
Но это как-то слишком радикально.
Второй вариант - через wait/notify, но это я подробно не продумал
Джаваны,
есть комп на нем жвм на ней крутится прога которая периодически возвращает ip адрес хоста (ну или имя)
вопрос - возможна ли такая ситуация что в рантайме прога изменит возвращаемое значение?
Тем, что ты поручаешь низкоуровневые операции реализации ожидания самой яве, а не пердолишь процессор каждую мс
bigdata
synchronized void foo {
while(!условие)
wait()
//code
}
synchronized void bar() {
//изменить то, что проверяет условие
notify()
}
крутим жвм
курим жирный член
)))))))
прикол да?)
Понял, спасибо.
Гугл знает
... где есть для данного случая countdownlatch
Зачем же так сразу? А я ведь уже переменные прошёл - так что, принимайте в свои ряды будущего хакeра.
Потому и умер на пару с котлин-тредом, что все переползли сюда. Думали - убийцы джавы, а оказалось - пшик.
Spring data jpa
Чувствуется, ответ "спринг бут" на любой вопрос стал этаким баттлтоадсом от мира Java.
Я сам не силён в хибере, но речь, наверное, про это:
https://www.baeldung.com/hibernate-lazy-eager-loading
мимо
Нет
Пока сделал через interrupt.
Работает.
Задавно, конечно, что тот первый шизик всерьез считал нормальным вариантом опрос в цикле
Не понимаю, чем тебе https://github.com/awaitility/awaitility/blob/master/awaitility/src/main/java/org/awaitility/core/ConditionAwaiter.java#L94 не понравилось.
> . Имхо, не самое большое неудобство в жизни разработчика.
> https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html#toArray--
Только выиграле!!
private static class ArrayList2<T> extends ArrayList<T> {
@SuppressWarnings("unchecked")
public T[] toArray2() {
return (T[]) super.toArray();
}
}
Подскажи, пожалуйста, как это записать в коде? Типа ""a" не эквивалентно ни одному из элементов массива ["b","c","d","e","f]".
Да, действительно, не додумался. Спасибо!
Строго говоря, там было String str = 10 - 6...; Sout(str)
Есть юзер и велики с владельцем, в бд хранятся данные о местоположении пользователей и владельцев(то есть их координаты). Мне нужно найти ближайшего владельца к текущему пользователю, и вот я сначала нахожу велики с нужными параметрами(allBikes), а потом с помощью caclulateDIstance высчитываю мин из вот этого всего. Меня очень смущает, что оно громоздкое и нужно все доставать постепенно... Как это можно иначе реализовать? Я не очень разбираюсь вот в этом всем и есть уверенность, что что-то идет не так!
Гуглить статьи типа "100 вопросов к собеседованию по джаве" разве что. Всяких тонкостей хватает, и учить их по какому-то специальному мануалу можно ебануться, и всё равно это забывается, потому что используется редко.
Но можно не учить прям всё. Если тот, кто проводит собес, чувствует, что в целом ты шаришь, то могут и взять (разумеется, нужно знать не только core). Меня вот взяли, хотя я одну хуйню не знал и догадался только после подсказок.
Перепиши в несколько операций и с переменными. Вместо того, чтобы несколько раз вызывать одни и те же методы, можно вызвать их по одному разу, а результаты сохранить в переменные. Код станет и более читаемым, и более эффективным, и менее громоздким. В частности, ты дважды вызываешь getByUserId и, возможно, из-за этого делаешь два запроса к БД вместо одного.
Я не очень понимаю, как именно следует это делать.. Попробовал еще вот так, но все еще нет уверенности, что выглядит лучше.
вот поэтому быдлу нельзя давать ни стримы, ни хибернейт, ни рефлексию, ни указатели, ни другие опасные штуки, где можно набыдлокодить.
Только переменные и циклы
ни*
Спасибо.
Допустим, нужно таки сделать два контроллера, и каждому из них сделать свой контекст. Плюс к этому должен быть root контекст, в котором всякие сервис-бины, которыми пользуются оба контроллера.
Я регистрирую root контекст через new contextLoaderListener(context1). Два контроллер-контекста через new DispatcherServlet(context2 и 3).
Первый вопрос. Правильно ли я понимаю, что при этом Спринг добавляет все контексты в ServletContext под особыми именами, чтобы потом мочь найти root контекст под этим именем, когда понадобится?
Второй вопрос. root - это тот, который через new contextLoaderListener(context)?
Третий вопрос. Что даёт регистрация контекста через new DispatcherServlet(context)? Этот сервлет добавляется в контекст и можно ему сделать ApplicationContextAware?
Четвёртый вопрос - зачем особые имена не-root контекстам? К их бинам ведь не обращается никто, кроме них самих?
И пятый вопрос. Зависит ли вызов lifecycle-методов от способа регистрации контекста?
я понимаю, что гораздо проще сделать один контекст на всё приложение, но мне кажется, что нужно понять, как это всё работает
Только не злитесь, няши. Я же правда не знаю, что используется, а что нет
>Иерархия контекстов
>мне кажется, что нужно понять
Во-первых, тебе уже говорили раньше, что оно тебе не нужно. Во-вторых, в принципе, прекрати блять уже задрачивать спринг как какую-то абстрактную науку, которую саму по себе НАДО ПОНЯТЬ. Это гребаный инструмент для решения прикладных задач. Иди писать учебные пет-проекты, разбирайся с возникающими по ходу проблемами, так постепенно все поймёшь. Не возвращайся блять сюда со своим учебником, пока не начнёшь.
Учебник можно читать уже, когда без гугла делаешь имиджборду или клон какого-нибудь сайта на спринге.
А изучать как ноуку с самого начала - тупой бред и все эти знания через неделю улетучатся.
Это хуевая книга. Единственная хорошая книга по DDD это оригинал, написанный в 99 году. С синей обложкой.
Очевидные PoEAA и OOSC.
У тебя не задектились?
К слову, те две вакансии - это какая-то хуйня для менеджеров, у них свой такой термин есть, оказывается. Пиздец. Даже на расте есть вакансии.
Смоллтолк - это не архисложный язык, чтобы писать и на нём. Просто он нахуй никому не нужен. У него нет области применения.
Может стоит отдохнуть от явы?
Ужасно. Ничего не изменилось. Все также не могу прочитать. Сказал же вынести юзера в переменную, чтобы не делать 2 запроса в бд. Каждая операция после стрима с новой строки.
Head First Java, (2nd Edition) by Kathy Sierra, Bert Bates — нечитабельная хуита
Не согласятся зеленые вкатывальщики, которым нужен визуальный подход и картиночки. Для них данная книга, как и остальные хедфирсты - самое то.
Какой охуенный ответ, тварь.
Тебя случайно не Маркус зовут?
Да, я думаю.
И если ты будешь мне сейчас доказывать обратное, в этот раз я запизжу тебя ногами. Голыми ногами.
Оставляй контакты.
Я не могу сказать точно, но когда смотрю на эту книгу — блевать тянет. Вырвиглазная хуета для дошкольников, которые просто не поймут о чём книга.
Аналог пока не нашёл.
ЕСть еще норм книга по 1.7 и некоторым технологиям вроде хибернейта, название не помню.
Ну и java 8 in action
А Шилдт?
Не могу переехать по семейным причинам, да и просто ДСы не нравятся - не очень хотел бы там жить.
Так что в жабе такого особенного, что она не переносится на удаленку?
основный проекты - крупный интрпрайз, которые пилятся командами по 20+ человек
вот и принято этих 20 рыл садить вместе, что бы они общались между собой постоянно
Ну и иди нахуй
всегда проще подойти и спросить, чем ДОГОВАРИВАТЬСЯ о созвоне
+ вот лично я работаю сейчас на удаленке и бывает дни когда я не делают тупо нихуя
вот в четверг и пятницу я просто на дейли коллах говорил какую-то хуйню типо "читаю требования по фиче" а потом просто ложился спать и кинцо смотреть
на прошлой работе я ходил в офис и такой хуйни не было
т.е. бизнесу таки выгоднее держать гребцов в офисе
>>46586
>>46545
А если я хекка, а там будут сеньеры-задроты, которые знают всё, нормисы-чеды, у которых каждый день новая тня, и тяночки. Они ведь будут смеяться над забитым зеленый джуном? Еще и про листву наверняка будут спрашивать, сбросил ли я...
какой пиздец я уже год практически ни с кем не разговаривал кроме мамки
придется привыкнуть
для меня вот тоже самым большим наебеловом было то, что оказывается работа в ит это не "уткнулся в монитор и аутируешь молча весь день", а бесконечные созвоны, пиздежь, совещения, дейлики, ретроспективы, спринт планинги, выяснение требований, переписки с тестировщиками и прочий пиздежь которого очень много
но весь этот пиздижь он сугубо по работе - на твою личную жизнь всем похуй
Много зависит от конкретных компаний и команд, даже и в энтерпрайзе есть места, где этого поменьше.
не могу говорить за все, но мне мне таки кажется что общаться нужно везде - где то больше, где то меньше
Например по гугловскому код стайлу в джаве должен быть отступ 4 пробела (не табуляция),
так что, брали и 4 раза нажимали пробел?
С чего ты взял, что раньше не было IDE и линтеров?
Что бы следовало любить?
потому что банки это серьезные организации, которые, внезапно, работает с деньгами
и у них нет времени эксперементировать со всякой хипстерской хуйней
вот они и выбирают проверенные временем технологии
+ лично я вот еще заметил такую штуку, что крупные интерпрайз заказчики очень не любят всю опенсорсную хуйню.
для серьезных дядек из серьезного бизнеса это кажется непонятным. как это блядь бесплатно? что это? бесплатный сыр бывает только в мышеловке! а если эта хуйня сломает нам все, то к кому потом иск подавать? а? а?: а?
вот в таком ключе они мыслят
им проще отвалить денег за решения от крупных известных корпораций типо майкрософта или оракла ибо для них это понятная схема - заплатил за услугу, получил услугу.
Подкекнул с вакансий.
Вобщем в таких нишевых язычках ситуация обычно следующая: либо ты будешь за копеечку хуярить как раб, либо тебе будут хуй сосать как Рокко. Шансы вкатиться в охуенные зарплаты и проекты околонулевые, скорее тебя наймут заниматься мейтененсом древнючего копролита за гроши.
Откуда мне знать за шизофреников и почему они дают дебильные советы.
Ты думаешь знание кобола чтоли нужно банчкам и за него платят? Нет. Им нужны спецы которые знают еще ТУ старую специфику банковских дел и умеют что-то там поменять в копролитах 30+ летней давности.
Занимаюсь поддржкой древнего говна за 3к в месяц. Не в чем себе не отказываюсь, деньги трачу куда хочу, но все равно блядь не полуается потратить больше чем 2к в месяц(я правда живу не в сьемном жилье). При это работаю я реально 4 часа в день от силы - остальное время ебланю и мне за это платят. Рядом сидит 10 таких же как и я.
Так вот что ты мне еще расскажешь?
ibn4: 3к это нищенская зарплата, вот в сша зарабатывают ШЕСТЬ!
мне похуй на правильное/неправильное
говнокод там обычный елси честно, но задачи клиента выполняет. клиенту это нравиться и он нам платит за это бабло
вот и все собственно
если в какой-то день мне как джависту перестанут платить бабло, а скажут учить смаллталк, то я так уж и быть перейду на него
жду этого дня с нетерпением
Черт его знает, я на окнах.
Подводные такие, что заебёшься её читать. Если у тебя +100 к усидчивости, то норм.
Видосики на ютабчике / курсы / сайты для вкатывальщиков
for (Integer i : itemset.getItems()) {
int g = 0;
for (String hashedProduct : hashedProducts.getHashedProducts()){
if(i == g ){
System.out.print(hashedProduct + ", ");
}
g++;
}
}
Нет, ты.
Да, он пишет на эклипс. А ещё у него есть феррари, дом за квадратриллионы и виски с выдержкой 25 лет.
А чем можешь похвастаца ты?
Он мог бы и на плюсах это сделать.
а что с ним не так? это де-факто стандарт в отрасли
у многих вон от git-а жопа горит, но он все равно используется в 95% проектов
Пакетный менеджер, например. Хотя, возможно, у меня причина горения не в центосе была, но после убунты и кали все равно стремно. И не из-за отсутствия GUI.
У нас легаси бамплимит 1000 постов.
А как же шутки про ПРОШЛОГОДНИЙ ТРЕД?
Чтобы спринг сконфигурил перечисленные бины и вставил их в тот бин, который создаётся при наличии этой аннотации. А если список пустой, то этот бин не должен создаваться.
А что ты собрался переводить в лямбды?
> безболезненно
Никак. Общепринятое решение - тащить жарники, жре и экзешник, который будет запускать жарник через эту жвм. Это если ты собрался использовать джаву не по назначению и делать на ней десктоп.
Да, это софтскилл такой, умение перекинуться парой слов с коллегами за чашкой кофе.
И как тогда сделать единую запускалку, и запускать вне ИДЕ и без жвм? Никак? Хуйня какая-то.. Да-да, в этом вся и прелесть, запускать везде из-под жвм..
Лишь бы что-то спиздануть, чтобы умным показаться? Это здесь не подходит.
Я так понимаю, ты хочешь скомпилировать джаву в нативный код? В принципе, для этого есть компиляторы от Vasyan, но сам понимаешь. Все эти упаковщики жаров в exe берут жвм и запихивают её внутрь экзешника вместе с твоим жарником, и они ничего не компилируют. Так что без jvm так или иначе никак.
Можно сделать standalone-версию JRE и положить её вместе с твоим жарником в одну папку. И написать какой-нибудь простой запускатор, будь до батник или экзешник, и он будет всё это дело запускать. Пользователю не придётся устанавливать JRE самому.
Да, одним файлом не получится, но даже крестовые проги тащат с собой кучу dll.
>И как тогда сделать единую запускалку, и запускать вне ИДЕ и без жвм?
Хочешь один-единственный exe-шник? А зачем? Любое мало-мальски серьёзное нативное приложение под винду (про линупс не буду врать, не знаю) представляет собой кучу библиотек, ресурсов, настроек и прочей требухи, которую надо разворачивать в системе инсталлятором. И ты можешь точно так же притащить свою джаву, свои джарники и кормить их джаве exe-шником.
>сконфигурил перечисленные бины и вставил их в тот бин
В какой в тот? В принципе через постпроцессоры можно сделать почти все что угодно, но, кажется, ты хочешь какую-то хуйню, и твоя задача на самом деле решается иначе и проще.
Вряд ли есть такая штатная возможность, но можешь попробовать поискать плагин для мавена.
Понял, спасибо еще раз.
Сама аннотация отвечает за то, чтобы спринг создал определённый бин, а параметры аннотации говорят о том, какие бины, реализующие некоторый интерфейс, надо заинжектить в этот определённый бин. Мне кажется надо копать в сторону ImportBeanDefinitionRegistrar, но я тоже думаю, что есть путь намного проще.
>Сама аннотация отвечает за то, чтобы спринг создал определённый бин
И стоит она на этом самом бине, как Component? Тебе вообще это все нахера именно в таком виде с такой аннотацией?
Нет, аннотация на main классе. Чтобы было проще представить, выглядит она как @EnableTransactionLogging({DefaultLogger.class, PostgresLogger.class}).
А, ты Enable* свой хочешь. Тогда да, ImportBeanDefinitionRegistrar. Либо обойдись без параметров, тогда это будет просто импорт конфигурации.
Там не то что бы очень много копать, потому что есть примеры в исходниках для встроенных подобных аннотаций, но ты подумай ещё раз, точно ли тебе надо эти DefaultLogger.class настраивать прямо в аннотации. Может твой transaction logger их и сам прекрасно найдёт.
Найдет-то он их сам, раз спринг может заавтовайрить бины одного типа в коллекцию. Но создавать их надо будет в этом самом ImportBeanDefinitionRegistrar вручную, и регистрировать в бин фактори, насколько я понял.
>Найдет-то он их сам
Тогда в аннотацию их не пихаешь, делаешь их обычными бинами, и не нужен никакой registrar
А как сделать так, чтобы создавались только нужные бины? Если пользователю нужен только один DefaultLogger, например.
Ну можешь за мета-аннотацией в стиле EnableDefaultLogger спрятать этот импорт. Можно подумать твоё {DefaultLogger.class} сильно удобнее.
>Можно подумать твоё {DefaultLogger.class} сильно удобнее.
Мне кажется намного удобнее, учитывая, что тут могут быть любые сочетания этих логгеров. Но суть я понял удобнее = сложнее, впрочем, как и везде.
>могут быть любые сочетания этих логгеров
Я вот, например, не гордый, мне и через обычный джава-конфиг такие вещи нормально настраивать
Пикрил - мои эмоции после прочтения.
Есть и другие метрики, кроме рынка труда. Например, опенсорс. Уж опенсорс-то люди пишут добровольно, а не потому, что им за это платят. Сколько опенсорсных проектов пишется на смоллтолке? А сколько на джаве?
Опенсорс бывает разный, это не только крупные НКО, но и пет-проекты ноунеймов на гитхабе.
Пет проекты чаще всего делаются для портфолио, статусности.
Накопал, оказывается в моем случае все очень просто.
Ванильный JPA+Criteria (дефолтный код всяких говновизардов)
CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
cq.select(cq.from(entityClass));
Query q = getEntityManager().createQuery(cq);
q.setMaxResults(rangeEnd - rangeStart + 1);
q.setFirstResult(rangeStart);
return q.getResultList();
Что ты несешь, там про поведение для user.getBids().size() вопрос был
Как мне растеризировать .ttf шрифты? Во всех нормальных языках есть либа FreeType. Почему для джявы нет?
Прочитать спецификацию и сделать точно, как в ней. Ну или научиться нормально гуглить.
>>49476
Гуглятся какие-то решения через awt, но я хочу чтобы моя приложуха работала не только на десктопе, но и на андроиде.
Ещё нашёл вот этот пример через либу stb
https://github.com/LWJGL/lwjgl3/blob/master/modules/samples/src/test/java/org/lwjgl/demo/stb/Truetype.java
Охуеть как удобно конечно. В C++ через FreeType я бы уже давно всё сделал. Странно, что в джаве нет такой элементарной либы.
>Гуглятся какие-то решения через awt, но я хочу чтобы моя приложуха работала не только на десктопе, но и на андроиде.
Ты серьезно хотел, чтобы приложение, написанное на джаве, запускалось где угодно без костылей?
Ну, lwjgl ведь запускается и на десктопе, и на андроиде.
Какой же я тупой.. Проблема решена.
Едва ли при этом ждут, что ты с порога будешь разбираться в тонкостях легаси-фреймворков. Тем более половина сложности в EE это ебля со спецификой конкретного аппсервера.
Вам в жс-тред, уважаемый.
Наверное, речь про асинхронщину.
Переводи в int и сравнивай
Да, массивы из одного элемента это сила.
800x600, 0:25
Ну да. Просто захотелось под андроид что-нибудь написать. Рейтаните что ли мой самописный гуй.
Да, автору уже указали на это на гитхабе:
https://github.com/s4kibs4mi/java-developer-roadmap/issues/2
>thanks for issuing it. It basically means memory management.
Ах ты сука.
Что ты подразумеваешь под работой с консолью? Вызов внешних программ?
https://stackoverflow.com/questions/5711084/java-runtime-getruntime-getting-output-from-executing-a-command-line-program
Думаю, можно указать какой-то хитрый параметр при создании подпроцесса. Не знаю. Обычно все пытаются наоборот скрыть любые окна консоли. Возможно, придётся дёргать winapi, но там вряд ли можно обойтись без сишки.
Ну или ты можешь перехватывать весь вывод подпроцесса и выводить его в основном окне.
Вероятно, это не откроет именно новое окно, а запустит cmd prompt в текущей консоли.
Дело в том, что текущей консоли нет. Когда я создаю ехешник консольной программы и запускаю его - ничего не происходит. Если, допустим, ожидается ввод от пользователя - вводить некуда. Поэтому я и хочу открывать кмд, чтобы там уже работать.
Я бы сделал на питоне. Но питон мгновенно не учится.
Обидно что какой-то хуйней в итоге затрут важный для меня вопрос, слабоумные хуесосы, а менее дегенератских ответов и не будет.
Какой вопрос и вопрошатель, такие и ответы.
Как минимум, нужно знать Core (коллекции, stream API и т.д.). Ещё базы данных хотя бы на уровне нормализации и индексов. СУБД подойдёт любая, переучиваться недолго. На мой взгляд, лучше Postgres. Также нужно знать Spring на достаточном уровне, чтобы написать хотя бы небольшое приложение, и знать, как развернуть это приложение хотя бы на Tomcat. Ещё нужно разобраться с мавеном, гитом и хотя бы минимальным тестированием (JUnit). Ну и не помешает понимание фронтенда в общих чертах.
После восьмой джавы различий еще меньше стало.
А еще differences between final finally and finalize
Вообще говно тупое
Вот вы рофлите, а меня спросили, нахуй наследоваться от обджекта, если можно отдельно методы тустринг, хэш и тд реализовать в каждом нужном классе
Не понимаю, зачем может быть нужна книга по котлину
Сильно устарела книга за 19 лет?
Действительно. Спасибо, тогда понятно.
File file = new File(a);
Есть ли смысл, для экономии памяти и улучшения производительности, создать объект перед началом цикла, типа:
File file;
и потом его реюзать внутри цикла, вместо того, чтоб каждый раз создавать новый объект?
>The Vector and Stack classes
>HashTable, Dictionary
>Enumeration class
>BitSet
Устарела, но немного.
Отлично, спасибо.
За перформансом тебе в плюсы, а не сюда.
Разницу ты не заметишь, оверхед на создание ссылки минимален по сравнению с созданием объекта. И то он может оптимизироваться.
А ведь правда. Теперь даже не могу вспомнить, как рассуждал, когда решил, что это освободит память. Может, на создании новой ссылки хотел сэкономить память? Хотя я даже не знаю, куда деваются ссылки после окончания итерации, в которой были созданы. Может, они мгновенно удаляются, а не как объекты.
JSoup
Не могу выбрать между:
1. Java. Библиотека профессионала. Том 1. Основы - Хорстманн К.
2. Философия Java - Эккель Б.
3. Java. Полное руководство - Шилдт Г.
Насколько я понимаю это одни из самых популярных книг по Java Core (не считая Head First, честно, мне не понравилась модель изложения в ней, как-то несерьёзно что ли, как будто для совсем новичков написано).
Какую посоветуете?
Самое оптимальное - двухтомник Хорстеманна. Плюс параллельно читаешь "Методы программирования" Блинова и решаешь там упражнения.
>Вот вы рофлите, а меня спросили, нахуй наследоваться от обджекта, если можно отдельно методы тустринг, хэш и тд реализовать в каждом нужном классе
А расскажите нубу, почему так? В джаве разве не по-умолчанию все от обджекта наследуется?
Ого, прямо как во втором питоне
Чтобы был reusable код. А если не устраивает стандартная реализация, метод можно переопреелить.
Удваиваю, про библиотеку написал я, но с домашнего компа, поэтому скрина не будет. смешно, да
>Также нужно знать Spring на достаточном уровне, чтобы написать хотя бы небольшое приложение
Извини если нубский вопрос, а как небольшое приложение можно написать на спринге? В моём понимании он для больших приложений, где архитектура, бины, конфигурации и всё такое.
>2. Философия Java - Эккель Б.
Говорят, годная книжка, но плохо переведена и нужно читать в оригинале. Давно не переиздавалась (переводы не в счёт).
>3. Java. Полное руководство - Шилдт Г.
Типичный справочник. Лучше уж сразу доки оракловые читать.
>1. Java. Библиотека профессионала. Том 1. Основы - Хорстманн К.
Советую
Небольшое по меркам спринга. Скажем, не супер-энтерпрайз-систему учёта движения рублей на счетах в банке, а чатик какой-нибудь. Пара сервисов, контроллер, репозиторий. Ну или интернет-магазин.
У Хорстамана хорошая новая книжка Java 9 for the impatient
два класса псы и собаки
у обоих есть 2 поял
вес и возраст
интерефейс, который они оба наследуют
в интерфейсе метод который каждый из классов перегружает(он считает кол-во сожранного корма)
в большинстве своём все что надо реализовал но в конце задания надо отсортировать объекты по полю и я кисло пержу в лужу на этом моменте
есть массив объектов, каждый из них вызывает метод который подсчитывает количество сожранного корма
и я пытаюсь по возвращаемому этим методом результату сортировать этот массив ебучий но компаратор херово работает
стоит ли переделывать и вместа массива объедков закидывать в arrayList?
я не самый смышленный персонаж так что можете не напоминать мне что я дэбик
Удавиваю!ак
> (работаю джуном, рефакторю хуету на спринге, и недавно понял что самих основ языка я не знаю, хотелось бы лучше разобраться в том как устроен Collection framework, как работает хэш код, может разобрать базовые паттерны)
Что бля?
А как ты джуном-то стал?
Нет, потому что для меня подходящая ниша - и не космическое задротство, и не сайтики на пхп
Пишу игру по гайдам и планирую реализовать в ней мультиплеер\кооператив
Лучше поднимать отдельный сервак или юзать p2p?
Заранее спасибо
Тогда проси 90
Scanner in = new Scanner(System.in);
System.out.println("Введите первое число:");
int first = in.nextInt();
System.out.println("Выберите операцию:");
String operation = in.next();
System.out.println("Введите второе число:");
int second = in.nextInt();
switch (operation) {
Код, где выбирается операция работает только с методом next(). Если записывать строку через nextLine(), он сразу перекидывает на выбор второго числа, не давая выбрать операцию (+, -, *, /). Я не понимаю, почему так.
Это всё из-за буфера. Когда ты ввёл первое число и нажал энтер, символ перевода строки остался в буфере. nextLine() видит, что в буфере пустая строка с переводом в конце, и возвращает её. А next() пустую строку не возвратит, он будет ждать хотя бы один непробельный символ.
Самый простой способ никогда на это не натыкаться - всегда использовать только nextLine и конвертировать из строки в нужный тип
Жалею, что не начал изучать джаву раньше и до сих пор не вкатился в котлин.
Но уже не так.
NOTE: The functionality of this interface is duplicated by the Iterator
interface. In addition, Iterator adds an optional remove operation, and
has shorter method names. New implementations should consider using
* Iterator in preference to Enumeration.
>Ага, разобрался, спасибо.
У меня такая же проблема была, но я почему-то без затруднения нагуглил причину, а ты ждал два дня итт.
Одно другое не исключает. Например, SOAP, пересылаемый через брокер, работающий на HTTP. Да, так делают.
Пчел, ты...
Смотря что ты понимаешь под "обязательно" и какие имеешь в виду альтернативы
Чот мне кажется, что это только с jsp, а рест-контроллеры те же не будут работать все равно
Java лучший язык программирования. Из-за строгой типизации и кучи стандартов/договоренностей, принятых в языке, которые не только упрощают разработку, но и помогают избежать кучи ошибок, на Java пишутся программы такого масштаба и сложности, который часто и не снился большинству других языков. Привет из Java Enterprise, в котором миллион строк кода — небольшая программа. Причем я одно время такую программу разработал и целый год поддерживал в паре с еще одним разработчиком. Вдвоем за 3 месяца написали, вдвоем год улучшали. Почти ни на одном другом языке такое даже не снилось (вероятно, конкуренцию могут составить C#, ruby и, возможно, python, но про последний — сомневаюсь).
PNIETE STUDENTOBYDLO PLEASE
Есть файл AES.java по пути src/main/AES.java
В нем функции которые нужно заюзать в index.jsp который по пути web/WEB-INF/index.jsp
Как подключить ебучий пакет и заюзать функцию по onclick ?
Я белый. Белый мальчик. Извинись.
В вузе в первом курсе изучали шарпы. После этого на них не писал.
Недавно участвовал в проекте с java12 Spring.
Сейчас встал вопрос, чем дальше заниматься. Почему-то многие поносят жабу и фапают на шарпы. При этом жаба вроде и на андроиде юзается. И Scala с Kotlin на jvm (помогает ли знание java в осваивании этих языков?)
Есть какие-то важные отличия Spring от ASP?
Активно ли используется Xamarin? А kotlin встречается активно где-то помимо ведра? Какова доля на российском рынке?
прост ещё постоянно слышу возгласы, что шарпы идут в опенсус и они божественны. Не понимаю, чем именно.
Нахуй, сосать хуй.
>>58468
> шарпы идут в опенсус
А все остальные языки там давно. Но никто не дрочит на них именно из-за опенсорса.
> поносят жабу и фапают на шарпы
Что ж, синтаксис шарпа побогаче, да. Вот только если джава проверена временем и доказала свою пригодность для энтерпрайза, то про шарп никто ничего не знает. Соответственно, будет сложнее найти ответы на вопросы и более вероятно наткнуться на недоработку платформы. Возможно, когда-нибудь шара взлетит.э, но сейчас перспективы у него ну очень туманные.
> помогает ли знание java в осваивании этих языков?
Без знания джавы это тупо не выучить. Большинство мануалов ориентировано на джавистов.
Про ASP хз, про него ничего не слышно.
Котлин в последнее время пытаются пихать в бекенд, может и приживётся.
Какие курсы по жабке можете посоветовать в Украине/России? (есть небольшой опыт по Си, С++, но в Джаве я ноль).
Компьютерная академия ШАГ норм для вката?
>если джава проверена временем и доказала свою пригодность для энтерпрайза, то про шарп никто ничего не знает
Это преувеличение все же. На дотнете вполне себе тоже делают что-то энтерпрайзовое, но доля, конечно, заметно меньше, чем у джавы. А дотнет кор появился слишком поздно.
Это что, новая мантра жабадаунов перед новым днём разгребания легасидерьма? Жаба никому не нужна, она живёт только потому что на ней написаны тонны дерьма, которые сложно переписать на что-то хорошее, на шарп, например. Переписывается только малая часть, остальная продолжает гнить и обрастать новым говнокодом. Жаба не обновляется, обновляются только фреймворки, которые созданы для разгребания дерьма, такими же рукожопами, которое это дерьмо плодили.
Над "сложнее найти ответы" можно только посмеяться, зайдя на постоянно обновляющийся https://docs.microsoft.com/, не говоря о стаковерфлоу и тонны годной литературы сконцентрированной на шарпе.
Ты что-то не так делаешь.
@Controller
class FooController {
public String foo(HttpServletRequest hsr) {
hsr.getParameter("bar");
...
}
}
Метод возвращает null, если параметр не передан. Если передан, возвращает его значение.
У меня POST и form-data, может, в этом дело. Почему-то, когда я тот же самый реквест обрабатываю просто сервлетом, все поля формы нормально видятся через getParameter("name").
>шарпы идут в опенсус
Исключительно чтобы выжить. Так-то как язык C# весьма хорош, но даже всей мощи майкрософта не хватает, чтобы в одиночку тащить дотнет на конкурентном рынке.
Ну это просто палеозой какой-то.
Сейчас даже итераторы иногда считают палеозоем, ибо есть стрим апи.
мань свои хипстерские forEach и прочее дерьмо со стрелочками можешь в жопу себе засунуть)) это дерьмо в Джаве не нужно
У нас есть победитель!
Бамп вопросу.
Я не буду разбираться, прав ты что там всегда null или не null в спрингемне кажется, что такого быть не может т.к. спринг использует под капотом сервлет апи
Но даже если так, нахуя тебе это? Что такое специфичное ты делаешь? Спринг даёт тебе охуенную абстракцию над сервлетами - есть RequestParam, RequestBody и т.д.
Я изначально и хотел использовать RequestParam. Но он тоже не работает, как надо. Пишет в логе, что нет такого параметра. RequestBody тоже какую-то ошибку выдаёт.
А обычный сервлет всё видит нормально. Сервлет, полученный из контроллера в Спринге - уже не работает.
Я нагуглил что для форм-даты можно принимать мапу в контроллере. Пробовал?
Ещё нужно указать в requestmapping что он consumes MediaType.APPLICATION_FORM_URLENCODED_VALUE
>Я изначально и хотел использовать RequestParam. Но он тоже не работает, как надо
А должен. Так что ты делаешь что-то не так. А что именно - никто тут угадать не сможет. По крайней мере не видя твой полный код и конфиги.
Нет. Жалею, что слишком мало читал в начале карьеры. Рили года 3 проебал тупо пописывая интерпрайс. С другой стороны, когда я начал читать про паттерны и всю хуйню, мне было очень легко, потом что большую часть я уже сам "изобрёл" к тому моменту.
Ну и ваще с выходом 8ки и далее - джава доминирующий язык.
техлид/архитектор
Хуйню несёшь. Джава сейчас гоу-ту язык для ЛЮБОЙ микросервисной архитектуры, где логики больше, чем хелоу ворлд.
Джава обладает самым большим и самым активным компьюнити.
Тот же отец всех микросервисов нетфликс - написан на джаве, а не твоих решётках или пхп.
Все самые крутые тулзы в первую очередь выходят для джава-господ, и только потом адаптируют кое как для всех остальных.
Сейчас, как никогда, самое выгодное время вкатываться в джаву.
Мапу не пробовал пока. В consumes указал urlencoded - ничего не изменилось, только тело реквеста перестало читаться.
>>59631
Попробовал снять тело запроса request.getInputStream() и записать в файл, результат на пикче. Почему он это не может распарсить? Может ли это указывать на то, что у меня в конфиге не хватает какого-то бина?
С шарпофагами спорить бесполезно, даже не пытайся. Они всё равно ничего не слышат.
Золотые слова!
>multipartResolver
Живём, однако.
Откуда у тебя взялся мультипарт и нахера он тебе нужен?
Залезь в консоль браузера и посмотри, какой запрос уходит на бэк, адаптируй бэк.
Двачую
Полостью с тобой согласен кроме
>Все самые крутые тулзы в первую очередь выходят для джава-господ, и только потом адаптируют кое как для всех остальных.
Вот тут мне кажется всякий синтаксический сахар наоборот вначале пробуют в других jvm языках. Пример when в котле (там где стрелочки) подвезли в джаву вроде только в 12 jdk.
мимо другой анонимизируя
Опять выходишь на связь?
Я про другое, на сахар мне похуй.
Взять тот же грейдл и мавен - их аналогов нормальных практически нет.
Всякие вещи, типа сервис дискавери, лоад балансеры и т.п. - всё это в джаве поддерживается на уровне "кинул аннотацию в спринге и всё работает", в остальных языках надо пердолиться хуй пойми как.
>мавен - аналогов нормальных практически нет.
Пофиксил. Сам охуел, когда узнал, сколько пердолинга нужно для сборки проекта на С.
Вопрос даже не столько в зависимостях, сколько в возможностях кастомизиции.
Один простым ./gradlew build можно запустить и статические анализаторы джарника, и выгрузить статистику покрытия тестами в сонар, и собрать и запушить имедж в репозиторий.
Никакой ебли.
А у сярпистов разве нет системы сборки проектов?
Бамп.
Аспекты есть для этого же, да. Чисто теоритечески ты мог бы сделать что-то более удобное в применении, чем существующие решения для AOP, тогда смысл был бы.
Я пока вообще не понимаю, как можно перехватывать вызовы методов без проксирования. Скорее всего в аспектах и так используется наиболее оптимальное решение для этого, так что у меня получится максимум удобная обертка над ними.
Наверное, но все равно постепенно всякий сахар добавляется
Если новый switch еще в превью, то var val подвезли еще в 11 или 10 jdk
другое дело что var/val нахуй не нужон
>без проксирования
Aspect weaving.
Твой аспект вкорячивается прямо в байткод во круг исполняемого кода без всяких проксей.
Ну вот, я же говорю, что там и так оптимальный вариант.
>Map<String, List<String>>
Это с ходу код смелл. Последние пару лет, я МАП вообще не использую, и все листы заныканы под врапперы.
За тем же, за чем и таплы. Дебилам лень сделать класс на два поля, и в итоге вся типизация идёт по пезде.
И мавен с грейдлом не использует. Собирает себе антом проекты на java 6 да EE и живет счастливо. И все листы у него аккуратно под врапперами, один к одному...
А мы все в глубине души на самом деле ему завидуем. Нам ведь тоже, быть может, хотелось бы освободиться от этого нескончаемого бега, от этой мелочной суеты, хотелось бы обрести покой, застыть в этой вечности. Но мы не способны этого сделать, мы рабы мирских страстей, нам всегда надо чего-то еще, мы гонимся за чем-то все время. Более лаконичные лямбды, более комфортный спрингбут... Никогда не сможем остановиться...
Спринг вообще мертворожденная хуйня. А это говно было высрано когда авторы спринга просто хотели присосаться в ещё одном месте.
Кстати да, без них тоже было бы заебись. Оно-то понятно, что аннотации не последние дебилы изобрели, но так-то рили, подумой, используют их только дауны где ни попадя и вообще не по делу, вреда в итоге от них только больше.
Непонятно, зачем это нужно. К тому же, есть Мокито например. А так-то это либа на 1 страницу кода.
Оракл и МС изучай, если деньги зарабатывать хочешь.
Это да, питон не знаю.
Надо хотя бы какой-то код написать.
Представь сидит толпа мудаков, которая дрочила джаву, 10 лет мусолила свое приложение, а тут ты пришел и говоришь "я на джаве никогда не программировал, но могу написать многопоточное приложение". Поэтому возникает резонные вопросы, что надо заложить время на обучение и погружение и т.п. Ну и некоторые мелочи, которые приходят только с опытом - им лень ждать/заниматься твоим становлением, пусть даже это не сложно, и ты вумный - лучше перестраховаться, дичайших даунов большинство. В общем запили что-нибудь, текстовую игру хотяб, приди с демой сразу, чтоб поняли, что ты действительно кодишь, а не "можешь написать". кста это хуйня полная, многопоточку и пингпонги только на собесах спрашивают. В реале это чисто техническая нужда, и легко пишется немного вдумчивыми копипастами с стэковерфлоу. Основная нужда в ждаве это ООП дизайн и увожение примитивных понятий типа SRP и KISS. Если на собеседовании делают упор на многопоточность и "высоконагруженность", скорее всего там бывшие сишники, беги оттуда. Джава в руках цэпопэшника это ад и погибель, они даже в енамы не могут, всё в константах, даже небо, даже аллах, и не переучиваются. Прежде всего нужно идти на вакансии с пометкой Java SE, какие-нибудь склады или финансы, там обычно объектная модель интересная, есть чем заняться, в EJB без опыта только в качестве второстепенной активности можно соваться, там ещё сутью проникаться нужно
Вот это люто двачую.
>мам, кто-то со мной не согласен
Попробуй поискать конкретные аргументы за аннотации.
Мне даже интересно.
Ты что, вещь в хмл ты можешь поменять конфигурацию без перекомпиляции, а нужно это бывает настолько часто, что вообще по-другому жить не получится. Жаль только, что в хмл нельзя вынести логику, чтобы не приходилось перекомпилировать и её. До меня дошло, как появились интерпретируемые языки.
Теперь я знаю java 1.0.2!
Deprecated вещи пропускал и смотрел replaced by аналоги.
Ну и старую JNI-интеграцию с Сишкой без плюсов скипнул.
Охуенная книга, тоже начинал с неё, когда Java 7.
Захотел удалить с помощью Universal Installer - нихуя не удаляется, warning высветился (введите команду путь/до/базы/deinstall/deinstall), опять в же в папке загрузки, а там быть не должно. Ну и я пошел, а там батник, запустил, он что-то там пытался, и потом написал unable to delete oracle хуйнянейм несколько раз. Я это говно вручную полчаса вычищал и в реестре искал, и все ярлыки в стартовом меню удалял, это что за пиздец?? Она же платная и много стоит, что за отношение к клиентам?
LEENOOKS
Тут в треде не просто так постгрес советовали.
Вопрос конечно глупый, но все же: книжки для начинающих лучше читать в оригинале если достаточно хорошо язык понимаешь или лучше на русском? Затруднит ли это познавание основ? Или же наоборот русский перевод может только отвратить от чтения?
Сколько литературы ни читал, но на английском будто бы проще текст.
T-Systems, епт. К гадалке не ходи. Лень печатать сейчас попозже расскажу, почему они не могут захайрить сеньоров и не могут их вырастить
Погляди в сторону докера. Поднял контейнер, когда не нужно - ебнул его. И никто не срет в реестры
>книжки для начинающих лучше читать в оригинале если достаточно хорошо язык понимаешь
Всё что угодно без исключения лучше читать в оригинале, если позволяет знание языка
Давай, ждем.
Короче, по поводу T-Systems. Все очень просто.
Захайрить сеньоров там не могут просто потому, что действительно сеньоры рассматривают Т, только как место, чтобы взять передышку. Все что написано в отзывах в интернете - правда. У Т очень крепкая позиция на рынке (нет конкуренции), поэтому они особо не парятся и в компании царит брежневский застой. Ни один действительно сеньор Тэшку, как прыжок в карьере, рассматривать не будет, потому что платят там ниже рынка и существует неилюзорная вероятность вляпаться в дичайшее легаси.
Плюс, возможно, играют роль собесы. Насколько я слышал - собес на сеньора в Тэшке - это перекрестный допрос от пяти человек, причем там вполне нормальным считается вопрос про свап двух переменных без третьей или про то, что такое трехфазный конструктор (да, там все поголовно дрочат на Борисова и никому в голову не приходит, что не очень прилично юзать придуманную каким то хуем слева, терминологию)
Основным притоком кадров является та самая джава-школа. Это такое затянутое собеседование. Вкатывальщики приходят туда, два месяца слушают лекции, делают проект на Спринге - защищают его - по результатам получают оффер. Короче - точка для вката просто идеальная.
Проблема только в том, что вырастить из этих джунов сеньоров у тэшки все равно не получается. Джуны поумнее (те, кому действительно интересно ковыряться в коде), быстро прохавывают, что ловить тут нечего, и сваливают максимум через пару лет. А ловить там и правда нечего. Получив некие навыки работы в тырпрайзе, джун поумнее понимает, что Тэшка - это не про проекты, а про политику. Многие архитекторы - говорящие головы и намного проще сделать сначала как понял, а потом переделать как надо, чем пытаться выудить хоть какую-то информацию (потому что они нихуя не понимают, чего ты от них хочешь). Или, например, они, погуглив пять минут, могут предложить фреймворк или солюшен, который сейчас решает задачу, но в итоге обернется дикой головной болью - но им похуй. Потому что главное в компании - это И-НИ-ЦИ-А-ТИ-ВА. Предложить какую нибудь хуету с умным видом и поставить себе звездочку, потому что если business will go south всегда можно спрыгнуть с галеры, оставив других разгребать твое говно (этим особенно грешат иностранцы). Причем эту хуету принимают на ура, даже без proof of concept.
Ну о качестве говорить не приходится. Я ни разу не слышал, чтобы кто то оттуда уходил в другое место без даунгрейда (впрочем с апшифтом по зп, так что похуй).
Есть еще в Т - народная забава - пинг-понг - уйти, чтобы через полгода вернуться с повышенной зп (иначе ждать повышения ты будешь долго).
В целом, может сложиться впечатление, что Т - это болото. В принципе, так и есть. Но...Есть и положительные стороны. Во-первых, для вката - это идеальное место. Надо быть просто конченным, чтобы не пройти собес в джава-школу, а если ты до этого ковырял спринг - то оффер тебе, в принципе, обеспечен (теперь там, насколько я знаю, можно читерствовать напропалую - использовать Boot и Data - так что все вообще стало просто). Во-вторых, работать там спокойно (хотя зависит от проекта). Вокруг не стоит семь менеджеров с вопросами "Ну когда уже". Так как компания крупная и иностранная, то тебя по любому не кинут - выплатят все, что тебе причитается вовремя и до последней копейки.
Короче, по поводу T-Systems. Все очень просто.
Захайрить сеньоров там не могут просто потому, что действительно сеньоры рассматривают Т, только как место, чтобы взять передышку. Все что написано в отзывах в интернете - правда. У Т очень крепкая позиция на рынке (нет конкуренции), поэтому они особо не парятся и в компании царит брежневский застой. Ни один действительно сеньор Тэшку, как прыжок в карьере, рассматривать не будет, потому что платят там ниже рынка и существует неилюзорная вероятность вляпаться в дичайшее легаси.
Плюс, возможно, играют роль собесы. Насколько я слышал - собес на сеньора в Тэшке - это перекрестный допрос от пяти человек, причем там вполне нормальным считается вопрос про свап двух переменных без третьей или про то, что такое трехфазный конструктор (да, там все поголовно дрочат на Борисова и никому в голову не приходит, что не очень прилично юзать придуманную каким то хуем слева, терминологию)
Основным притоком кадров является та самая джава-школа. Это такое затянутое собеседование. Вкатывальщики приходят туда, два месяца слушают лекции, делают проект на Спринге - защищают его - по результатам получают оффер. Короче - точка для вката просто идеальная.
Проблема только в том, что вырастить из этих джунов сеньоров у тэшки все равно не получается. Джуны поумнее (те, кому действительно интересно ковыряться в коде), быстро прохавывают, что ловить тут нечего, и сваливают максимум через пару лет. А ловить там и правда нечего. Получив некие навыки работы в тырпрайзе, джун поумнее понимает, что Тэшка - это не про проекты, а про политику. Многие архитекторы - говорящие головы и намного проще сделать сначала как понял, а потом переделать как надо, чем пытаться выудить хоть какую-то информацию (потому что они нихуя не понимают, чего ты от них хочешь). Или, например, они, погуглив пять минут, могут предложить фреймворк или солюшен, который сейчас решает задачу, но в итоге обернется дикой головной болью - но им похуй. Потому что главное в компании - это И-НИ-ЦИ-А-ТИ-ВА. Предложить какую нибудь хуету с умным видом и поставить себе звездочку, потому что если business will go south всегда можно спрыгнуть с галеры, оставив других разгребать твое говно (этим особенно грешат иностранцы). Причем эту хуету принимают на ура, даже без proof of concept.
Ну о качестве говорить не приходится. Я ни разу не слышал, чтобы кто то оттуда уходил в другое место без даунгрейда (впрочем с апшифтом по зп, так что похуй).
Есть еще в Т - народная забава - пинг-понг - уйти, чтобы через полгода вернуться с повышенной зп (иначе ждать повышения ты будешь долго).
В целом, может сложиться впечатление, что Т - это болото. В принципе, так и есть. Но...Есть и положительные стороны. Во-первых, для вката - это идеальное место. Надо быть просто конченным, чтобы не пройти собес в джава-школу, а если ты до этого ковырял спринг - то оффер тебе, в принципе, обеспечен (теперь там, насколько я знаю, можно читерствовать напропалую - использовать Boot и Data - так что все вообще стало просто). Во-вторых, работать там спокойно (хотя зависит от проекта). Вокруг не стоит семь менеджеров с вопросами "Ну когда уже". Так как компания крупная и иностранная, то тебя по любому не кинут - выплатят все, что тебе причитается вовремя и до последней копейки.
Есть лист а1, а2, а3, б1, б2, б3, где а и б - кусочки в строках
Надо сделать мапу(с ключами а и б, и элементами а1, а2, а3/ б1, б2, б3 соответственно)
Как это реализовать ?
Как я делаю
1) нахожу регулярками то что меня интересует и добавляю все а1, а2, А3, б1, б2 в один лист
2) пытаюсь положить в мапу ключи а и б и просто пихаю туда лист свыше.
Выходит что ключу а - соответствует весь лист от а1 до б3, вместо а1-а3
>Основным притоком кадров является та самая джава-школа. Это такое затянутое собеседование. Вкатывальщики приходят туда, два месяца слушают лекции, делают проект на Спринге - защищают его - по результатам получают оффер. Короче - точка для вката просто идеальная.
Что-то тут не совсем Spring.
Это все необходимо пощупать для понимания и все. Пилишь один проект на этом гавне, понимаешь как это все работает и устроено - и забываешь и переходишь на спринг
Решил вложиться вечно зеленым, чтоб точно уже прочитать.
а volume 2 не стоит у него же брать?
Тут противоречия нет. Ты же можешь юзать JSP со спрингом (хотя я видел кто то юзал Thymeleaf). Ну JPA понятно. По сервлетам тебе прочитают лекцию (года три назад люди пилили проекты на чистых сервлетах с тех пор программа не сильно менялась). На EJB/JSF раньше писалось второе небольшое приложение, которое цеплялось к первому через брокер - сейчас вроде можно забить на это хуй и лепить его на ангуляре, например. Плюс лекции тебе все равно прочитают по всей этой хуете (польза этих лекций, конечно, большой вопрос)
А что тогда лучше? Сначала просто прочесть Core Java?
Меня просто знакомые зовут на джуна к себе, чтоб я под ними работал некоторое время. Говорят, что thinking in java читать. Но издание старое и я подумал, что сложновато с наскока будет, поэтому хочу взять книгу совсем для нубаса и что-нибудь на ступеньку сложнее.
Подскажи раз знаешь, пожалуйста.
Я хз какой там стек у твоих знакомых, но если стандартный тырпрайзный, то я бы тебе посоветовал после Core Java почекать книгу по Спрингу (Pro Spring 5, Spring In Action (только 4, а не 5)) - это тебе поможет на первых порах больше, чем Effective Java. Плюс почитай книги по подготовке к OCA/OCP (например OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide) - там очень подробно, как для ретардов расписаны полезные вещи. Я бы вообще не сказал, что Effective Java ТОП10, больше книга для общего развития, как и GOF Pattern'ы - в тырпрайзе нужно только для собесов. Сейчас java - это инфраструктура - соответственно все от тебя спрятано под слоями абстракций. Читай то, что нужно здесь и сейчас. Например документацию по GIT. Книгу по SQL. Maven Cookbook. JS в общих чертах стоит знать - все равно однажды тебе придется с ним работать, каким бы ты ни был ниибацца бекендером. Docker. Все это намного полезнее, чем в сотый раз перечитывать как HashMap работает
Надо юзать regexp по заданию. Я матчу, пихаю матчи в мапу, ключ - название модуля, значение - вся строка - выходит хуйня какая-то, ничего в голову не лезет
Stream.collect(Collectors.groupingBy(...))
5 про бут в основном.
Понял, спасибо.
Postgres говорят похож на нее. Но чем именно? Синтаксисом или реализацией всяких технологий?
Конечно.
Движения рублей пишутся на PL/SQL в Oracle. Ебанулись штоле Яве доверить в движение балансов? У нас в худшем случае Ява дёргает оракловые процедуры
Юзаешь БигДецимал и збс.
Ты свинья.
Говно ты сраное.
скройся с двача
Хочу делать большие штуки.
Не хочу делать всякие CRM или банковскую хуету, хочу работать в стартапчиках и писать интересные штуки. Например бэк для Yandex Drive мне кажется довольно интересная штука.
Отлаживать, искать способы что бы сервак не упал, оптимизировать.
Плотно работать с базами данных.
Диктовать фронтэнд петушкам, как у них все будет работать(в общем в этом наверное и суть - заебали кривые бэкэндеры)
Знать больше основ, а не воевать с андроидом.
Джавка парашная, хотя у них вроде есть прогресс сейчас(каждые 0.5 года релиз).
Расскажи плих, смогу ли я устроится через 0.5 года впахивания?
Что меня ждет? Интересно ли это? Оправдаются ли мои ожидания и надежды?
Только пожалуйста, по существу, и холодно. Я понимаю, всех заебала своя работа.
По-моему правильные варианты:
@FieldDescription(value = "some text")
@FieldDescription({"some text"})
Разве нет?
Да еще и аннотация-бляди без XML.
Код на пике, поиск элемента по ключу для дальнейшего удаления, это нормальная реализация?
Проще простого:
int []ints = new int[] { 1, 2, 3, 4, 5 };
Integer []integers = new Integer[ints.length];
for (int i = 0; i < ints.length; i++) {
integers = ints;
}
Гугли stream api
Ну мне надо было как можно короче, я это нашел:
Integer[] boxedArray = Arrays.stream(unboxedArray).boxed().toArray( Integer[]::new );
for (int i = 0; i < ints.length; i++) {
integers = ints;
}
А я че то догнал зачем тут цикл вообще нужен.
Тупой чтоли? макаба съела [ i ]
Как для каждого модуля выводить фиксируемое задаваемое кол-во логов ? Получается идёт название модуля и он же ключ, а потом логи для этого модуля.
Через лимит нельзя, он даёт просто фикс кол-во логов, которое разбивается по модулям. А мне надо n для каждого модуля
В любом тырпрайзе.
У нас используют.
Это называется "статический блок инициализации". Нужно для инициализации статических полей класса, если она сложнее присваивания заранее известных значений.
Роджер Зет
upd
А хотя если мы не создаем объект класса или его специально нельзя создать, то при вызове статик метода конструктор не выполняется, в отличие от статик инициализатора.
Типа того. А ещё есть такая хрень:
{
// code
}
Она выполняется при создании объекта, но до конструктора. Вот и думай, зачем это нужно, я вот так и не понял.
Не знал.
Что-то в первом том Кея этого не нашёл, как и полноценный разбор сохранения класса в файл.
бамп?
>Хочу делать большие штуки. хочу работать в стартапчиках и писать интересные штуки.
Все хотят.
>Отлаживать, искать способы что бы сервак не упал, оптимизировать. Диктовать фронтэнд петушкам
Даже если не сложится со стартапчиками, этого все есть и в CRM или банковской хуете.
>Знать больше основ, а не воевать с андроидом.
"Воевать" с инфраструктурой нужно и в бэке.
>Джавка парашная, хотя у них вроде есть прогресс сейчас
Вот не надо с позиций котлина говорить "у них" о джаве. Как и в андроиде, ты будешь по сути тем же самым джавистом, на полностью той же платформе, с теми же фреймворками и т.п. И лучше даже не ищи работу обязательно только на котлине, его еще не так много на бэке. Всегда успеешь потом перейти или сам внедрить, после того как втянешься.
>смогу ли? Что меня ждет? Интересно ли? Оправдаются ли?
А хуй его знает. Угадать тут тебе не смогут.
Это во втором томе, в главе про сериализацию.
>как аннотации в спринге работают никто не знает, что за паттерн такой "прокси" тоже хуй кто знает, как имьютабл объект с бидером написать
Лол блять, ты бы ещё спрашивал дом дерево перевернуть или задачи по олимпиадной математике на доске сделать, понятно что вам всем нужны джуны со знаниями синьоров и опытом в 6 лет, но губу иногда закатывай, ты же не хуи на трассе сосешь. И вообще, ты готов за такие знания предложить достойную оплату в 100к для такого джуна? Нет? Ну и не выебывайся тогда.
Ради Христа посоветуйте библиотеку для больших чисел. BigInteger не подходит из-за особенностей моих исследований, весь гугл перерыл, помогите аноны
Уточни про исследования, а то вообще не понятно, что тебе нужно. Может, тебе джава вообще не подойдёт.
Да я выше писал, что этот товарищ из Т-Systems, судя по его ответам. Туда джуны ток через джава-школу попадают
https://codingbat.com/prob/p140449
public boolean parrotTrouble(boolean talking, int hour) {
return ((hour-7) && (20-hour));
}
Сука блядь, да что не нравится-то! Я тута здеся беру, подхожу с творчеством к решению задачи, а он пишет
bad operand types for binary operator '&&'
first type: int
second type: int line:2
хотя в примере кода пикча!
Там легко
public boolean parrotTrouble(boolean talking, int hour) {
return talking ? (hour < 7 || hour > 20) : false;
}
Дебажить каждую переменную.
Например, в одном зелёном банке нужно обязательно быть студентом, чтобы попасть на стажировку. Если диплом уже получил, идёшь нахуй.
К примеру, просто иди сравнением во вложенном цикле. Если проходит сравнение между двумя массивами, свапай во внутреннем цикле попарно элементы, чтобы тот, который совпал с внешним (из мастер-массива) встал на индекс внешнего (мастер-массива).
Наверное, если заморочиться, есть и более эффективные алгоритмы.
>>66403
Ага, расскажешь. Меня туда как раз позвали в жаба-школу уже после окончания универа. Причем я пришел, и студентов там 5%. Все остальные - мимовасяны и мимовасяны из других отделов сбера (на переобучении). Я аж охуел. Там всех лопатой гребут, главное тест написать и на собес пройти. Греф ебу дал походу, куда столько кадров.
Так легче просто пропердеть три месяца в жаба-школке и идти на стажировку, если у тебя траблы или у другого анона траблы с вышкой, ну или ты в годах уже.
Можешь привести пример жаба-школы. Это что-то типа мейлрушного говна за 100к в месяц?
>>66419
Аноны, я хуй знает, как это называется. Была вакансия на хх и в группе сбертеха моего города, о наборе в ява-шкилу. Занятие по три часа вечером, два раза в неделю. Всего три месяца. Обучение бесплатное. По итогу обучения есть тест. Напишешь хорошо - берут на стажировку. Вроде минимум два раза в год набор. Людей берут много, лишь бы начальные критерии прошли.
>Q: Что скажете за джавараш?
Что скажете за хиперскил жетбраинса? Тоже самое, но бесплатно и на английском? Сам сейчас прошел несколько прожектов с пометочкой easy, до этого кодил только на питоне два с половиной года.
Сколько у тебя занимало делать один проект? Ты ничего не скипал и все задачи (даже дополнительные) решал?
>нужно обязательно быть студентом, чтобы попасть на стажировку. Если диплом уже получил, идёшь нахуй.
Нахуй этот бред? Почему нельзя, если я только что диплом получил?
Я не смогу в разных городах одновременно херачить на последнем курсе.
Мне так говорили, когда я туда попробовал сходить, да и на сайте у них написано. Но анон выше рассказал, что бывает и по-другому. Ещё можно быть студентом магистратуры.
Стажировка - не единственный вариант, у Сбера полно вакансий на хх, на некоторые даже можно пройти без опыта.
На первый который кофемашина ушло дней 10, занимался этим каждый день чуть менее часа по вечерам, лол. Задачи решал все, дополнительные только когда припрёт. Вообще после него познал жаву на уровне могу решить тупую задачку, а так там вроде даже что-то про библиотеки и фреймворки дальше есть там есть такая типа роадмап где показано что уже знаешь и чего не знаешь выглядит крута
Same в IBM и в Касперском.
Да я тоже занимаюсь, просто охуел, когда ты сказал что
>Сам сейчас прошел несколько прожектов
Я подумал что за день два.
Туториал годный да, он по-моему на основе какого-то яндексовского курса который на степике был, единственное что не нравится - они часто суют какие-то олимпиадные задачки в дополнительные, что придется сидеть по паре дней решать, если ты раньше не встречался с таким.
Хз как тебе, но мне такие задачки очень даже доставили, мб это из-за того, что я до этого таких задачек много решал на питоне в кодеварсе и просто олимпиадках, хотя вовсе и не разбираюсь по-хорошему в этих ваших алгоритмах и структурах, даже хз пригодятся ли они мне когда-нибудь если обычно оно все уже реализовано.
>Я подумал что за день два
Конкретно на сам проект там у меня уходило всего пару часов.
Нахуя?
дружище, а какие стартовые знания нужны для таких школ? возможно ли зайти без знания языка но с гарантией апнуть его до уровня остальных за время обучения?
Не могу понять в каком пакете хранить логику приложения, т.к в всех примерах spring MVC архитектура используется с БД и соответствующими пакетами entity, domain, repo etc и сервисным, как связующим звеном с контроллерами.
Но что если я не использую БД? Правильно ли то, что я назвал пакет сервисом и логику по обработке изображения храню там?
Это копия, сохраненная 2 февраля 2020 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.