Вы видите копию треда, сохраненную 31 июля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Q: ЧТО СКАЖЕТЕ ЗА ДЖАВАРАШ?
A: Худшая инвестиция в твоей жизни. Огромное количество говнокода, оторванные от жизни задачки, 1000 заданий по выводу в консоль какого-то говна.
Сейчас все советуют Hyperskill. Более продуманный план обучения. Но, как и любой %COURSENAME% не гарантирует тебе успешного вката. Выучиться можно и самостоятельно, не отдавая свои кровные васянам-наставникам.
Q: Посоны, собираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?
A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред. Но в последнее время увеличивается количество вакансий на удаленке в связи с ковидом. Но, возможно, как вся эта мракобесия закончится, всех обратно загонят в стойло.
Q: Значит, я должен буду всю жизнь сидеть в опенспейсе, конвертируя XML в эксепшны? Ура, мне подходит! С чего начать?
A: Книги: https://libgen.is
Q: Хули все книги на английском?
A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Я не могу в книги. Наткнулся на джавараш, но в самом верхнем вопросе уловил нотки сарказма. С ним все правда плохо?
A: В наших тредах постоянно появляются люди, спрашивающие о джавараше. Громко объявляют, что начинают заниматься, задают пару тупых вопросов и куда-то пропадают. Похоже, большинство адекватов бросают джавараш из-за дебильных заданий типа "десять раз скопипасти этот кусок кода и выведи в консоль". Тем не менее, иногда появляются и люди, говорящие что прошли его целиком, и что дальше задания получше. Короче, хочешь - пробуй, первые десять занятий бесплатно же. Но, как минимум, лучше совмещать с обучением по другим источникам. На самом деле ты просто потратишь свое время на какой-то мусор.
Q: Пока читаю, все понимаю, а сам ничего сделать не могу. Что делать?
A: Практика, больше практики. Уровня laba1.pas: http://codingbat.com/java http://codehunt.com https://hyperskill.org все говно, есть литкод Примеры той-проектов: http://eax.me/programming-language-learning/
Q: Я выучил кор, достаточно ли этого, чтоб взяли на работу?
A: Лол, конечно нет. Вот майндмап с джава-технологиями: https://coggle.it/diagram/WqgTTNMJtPiHph_q/t/java-development-in-2018
Q: Слышал, SQL знать надо обязательно. Где его учить?
A: Начни с малого: http://www.w3schools.com/sql/default.asp Затем переходи к: http://www.sql-ex.ru/
Q: Всё это хорошо, но без алгоритмов меня на работу не возьмут.
A: Не все конторы дрочат на подход Яндекса который спиздил подход гугла. Но для крупных фирм знать алгоритмы маст хев уже на уровне джуна/трейни, вот курсы от Принстонского университета: https://www.coursera.org/course/algs4partI То же самое но в бумаге: Роберт Седжвик, Кевин Уэйн - Алгоритмы на Java
Q: Я готов к первому собеседованию.
A: Проверь свои знания здесь: http://www.quizful.net/test И здесь: http://www.careercup.com/
Q: Вопросы на собеседование.
A: http://jsehelper.blogspot.ru/2016/01/blog-post_59.html : куча вопросов с ответамине всегда правильными http://becomejavasenior.com/blog/2015/07/01/327-interview-questions-java-developer/
Перед тем, как задать вопрос Как вайти в айти?, ознакомься с вики:
https://github.com/qqqlll/Java-Thread/wiki
https://github.com/random76/Java-Thread/wiki
Тричую.
На джаве? Никак, нужно средствами мак оси перекомпилировать в машинный код.
Про WORA слыхом не слыхивал?
Он же кросскомпиояцию хочет, чтобы маковые дефайны отработали на винде, а в результате получился маковый бинарник.
Ну это через моки.
Не надо его собирать. Надо устанавливать JDK.
Почему гречневые не переходят с восьмой джавы на котлин?
На котлине только пориджи пишут.
А зачем? Этот сахарочек мало помогает в написании бизнес-логики. В хеллоуаорлдах на 50 строчек может и приятнее, но в очень большом проекте вообще не чувствуется разница между языками, всё равно всё сводится к клепанию абстракций и вызовам методов.
Сыглыславский, джава антипаттерн в разработке
Лишним не будет, но задрачивать не надо.
А что тогда?
Мало легаси пока.
metodKotoryiPomechaetNekotorieAidishnikiOpredelennimObrazomSbrasivaetTimerIStavitZadachuCherezNekotoroeVremiaSdelatChtotoSEtimiAidishnikami
process
handle
Шапка позорная.
Лучшая шапка - отсутствие шапки.
Не, смысл как раз в том, чтобы все это делать в рамках одной операции.
нет
Реально
> Где сейчас применяется Java?
На серверах в энтерпрайзе.
> Слышал, что из браузеров Жаву убирают.
Если ты про апплеты, которые умерли давным-давно, то они никогда и не были мейнстримом в вебе. Ты, конечно же, не путаешь джаву и джаваскрипт?
Кроссплатформенность есть за счет Электрона. JVM не эффективнее нативного кода.
Можно. Средства есть, но не настолько простые, насколько ты хочешь.
Чел, съеби в свой сишарп тред, и не воняй тут. Ну реально надоел уже.
А как оно должно выглядеть, и что уметь делать? Можно отсылки какие нибудь из существующих решений?
Что-то вы меня расстроили. Я сегодня с утра скачал книжку Шилдта и думал сейчас на Java быстренько напишу эмулятор.
>>077800
Это декстопное приложение. Основа - экран 8 разрядной ЭВМ с возможностью масштабирования в 2-4 раза. Дополнительно можно добавить какие-нибудь кнопки для управления ЭВМ (типа Power/Reset), масштаб и т.п.
Дополнительно будет эмуляция накопителя на магнитной ленте для загрузки/выгрузки данных. Тут можно просто сделать классические файлы TAP.
Сам эмулятор - это программа, которая выполняет инструкции процессора в виде машинного кода и выполняет их. К примеру, если записать данные в область видеопамяти, то это должно приводить к отображению пикселей на экране программы.
К сожалению, вывод пикселей на современных платформах очень сложная задача, которую почему-то никто не хочет реализовывать. Обычно предлагают вывод примитивов типа точки, линии, окружности, либо сразу 3D-графику с вершинами и полигонами.
Можно, не вижу в этом проблемы.
> если записать данные в область видеопамяти, то это должно приводить к отображению пикселей на экране программы
Это надо какие-то системные ресурсы получать? Ну твоя идея звучит как минимум для какого-то сишарпа, я думаю. А лучше такое на С писать.
Пиксели это просто матрица цветов, рисуй на текстуре как хочешь и рендери ее.
А как бы ты это сделал в другом языке? Если не знаешь, то наверно тебе рано такое делать.
В студенческие годы я писал на Borland Pascal и делал ассемблерные вставки для вызова VESA-режимов, в которых отрисовывал по пикселям что мне надо. Прошли годы и на современных платформах оказывается, что для вывода пикселей надо обладать сверхподготовкой. Приехали!
Если это в итоге будет запускаться как прикладная программа поверх ос, то пойдёт вообще любой язык общего назначения, но его сначала нужно будет изучить.
Рисовать пиксели можно на canvas, у большинства языков он есть. Или сделать текстовый ввод/вывод через gui библиотеки. Только интерпретатор машинного кода придется изобрести с нуля средствами этого языка.
Это же по сути и есть эмуляция, то есть парсить данные твоей магнитной ленты, интерпретировать их по своему средствами языка и выводить на экран.
Ну а вообще системные языки никуда не делись. Если там это проще то зачем ебать жабу
На джаве есть BufferedImage и ImageIO, там как раз попиксельный вывод.
В том и дело, что ни каких canvas сейчас нет. Всё это замылено толстым слоем бессмысленных обёрток. И как я выше уже писал, выбор только между примитивами типа кисти/пера и 3D-вершинами/полигонами.
Логику эмулятора написать для меня не проблема. Систему команд процессоров типа Z80 я хорошо знаю, потому что раньше сам на нём программировал.
Отрисовывай обычными джавовскими средствами квадраты, вот и все.
Напиши на плюсах или сишке, да и все, зачем в джаву с этим лезть. Можешь даже на лиспе написать.
Он это может и на жсе написать. Чел несколько дней херней страдает вместо того чтобы начать уже писать. Графика в этой задача вообще не проблема. Вместо отрисовки на первом этапе можно просто логировать вызовы.
Я выбираю наиболее подходящий язык как мастер выбирает подходящий инструмент.
Ну как писали уже джава вообще ни для чего не подходит больше и рассматривать ее стоит в последнюю очередь
Внезапно тебе может подойти что-то подобное
https://github.com/dascandy/pixel
Вроде бы как раз двумерная графика на пикселях. Правда это C++
Ну и в целом гугли графические библиотеки под пиксельную графику, они должны существовать
ты не правильно оцениваешь сложность подзадач в своей задаче.
Рендеринг - самая простая часть. Рисуй свои пиксели хоть в bmp.
Лучше юнит тесты
>Я выбираю наиболее подходящий язык как мастер выбирает подходящий инструмент.
Тогда фронт на электроне, бек на питоне, очевидно же!
Потому.
public static void main(String args[])
вызывает предупреждение, а вариант
public static void main(String[] args)
нет?
Хотя у Шилдта в книги примеры идут по первому варианту? Шилдт не знает Java?
Вроде как старая довольно, но подкупает небольшим размером.
Что думаете?
Был лучшего мнения о Java.
Типа чтобы было не просто "api.localhost:8080", а "api.localhost:8080".
>>078488
вот на первых 3 ссылках в гугле нашел такие аргументы:
>Следует по возможности избегать беззнаковых типов, поскольку арифметика беззнаковых чисел не на всех компьютерах реализована одинаково и из-за этого при переносе программы с одной платформы на другую могут возникнуть проблемы. По этой причине в языке Java беззнаковые числа запрещены.
>для реализации определенных алгоритмов иногда требуется беззнаковая арифметика, но те программисты, которые будут реализовывать такие алгоритмы, также будут обладать знаниями для выполнения беззнаковой арифметики со знаковыми типами данных
Это еще что, в котлине например вообще половины битовых операторов нет. Все идет к деградации...
Они полностью идентичны. Просто String[] args принято писать, т.к. читается легче.
Ну записываются они буквами вместо странных закорючек, какая разница? В ассемблере вон вообще операторов нет.
int nums[] = { 1, 2, 3, ...}
и нам надо найти значение
for (int x : nums) {
if(x == val) {
break;
}
}
И что мы в итоге можем найти? Ничего, потому что мы не знаем позицию в массиве (ключа).
В большинстве случаев интересны только сами значения, а не их индексы. Для индексов юзать обычный for.
Тащемта, паблика морозова можно на любом языке написать
Я такой пример на пхп видел, когда челик cors объяснял. Должно же быть как-то можно и на спринге.
Ну так реально нинужна. Это нужно в плюсах. В плюсах этим и пользуйтесь. Жабка это инструмент для другого.
сделать такие маппинги на одном порте, чтобы разные домены были на локалхосте. Типа "api.localhost:8080" и "another.localhost:8080", чтобы с cors поразбираться.
Ни спринг, ни пхп подобным не занимаются. Они могут работать только с готовыми ip-адресами и доменами, и надо либо править hosts, либо поднимать локальный DNS-сервер. Но зато можно фильтровать запросы по доменам: https://stackoverflow.com/questions/41252884/how-to-filter-request-based-on-domain-in-spring-mvc
> cors
Используй разные порты.
спасибо анончик за инфу. сам как-то не сумел нагуглить.
Для аллокации всей оперативы
Ура, умер, теперь шарподаун может вернуться на своё место у параши.
Пчёл, я в андроид перекачиваюсь. Бэкенд нинужен.
Нужны, студенты и выпускники CS идеально закрывают потребности
А залётные дегенераты с улицы не нужны. Пусть пиздуют в фронтеед и пхп
>Нужны, студенты и выпускники CS идеально закрывают потребности
>А залётные дегенераты с улицы не нужны. Пусть пиздуют в фронтеед и пхп
Ну очевидно SE, базовый Spring(data, security, mvc), из orm - hibernate более менее, в целом базовый уровень БД ну и по мелочи остальное.
Нацики, как вы национальность на глаз отличаете? По мне так никакой разницы с руснёй, чтобы говорить про "у них".
>да не судимым будешь
Это Иисус сказал? Такая глупость. Типа как "не воруй, и тебя не обворуют". К тому же вся его нахуй жизнь является прямым доказательством обратного.
Да не только его жизнь, но и поступки являются немного необычными: с одной стороны пацифист, а с другой "Не мир Я вам принес, но меч"
Да понятно, что в такое наебалово тысячелетия могло поверить только необразованное манямирковое быдло, жившее до нашей эры. Главное, что сейчас все нормальные люди знают, что бога нет. Веруны приписывают себе исключительное право на мораль, хотя их сказки прямо говорят им поступать вопреки ей.
Ага, ведь он родился за 6 лет до этого, потому что там какой-то верун проебался, высчитывая даты по книжке со сказками. Что сын божий может сделать за 6 лет?
Если никто не будет воровать, то и тебя никто не обворует. Но вокруг одно быдло вроде тебя
Если бы да кабы. Сейчас бы обсуждать как и что было бы в какой-нибудь фантастической вселенной, где никто не ворует, а твоя мать - честная женщина.
maven-assembly-plugin
maven-surefire-plugin
maven-clean-plugin
Я чет пляшу и не могу никак понять. Сам плагин мавена в intellij idea стоит. Че ему еще надо?
Бельгийцам похуй, а нам нет, надо мыслить глобально!
А вообще-то в рашке живёт 50000 негров. При такой большой социальной группе необходимо задуматься о правах.
Очевидно, blm- локальная рашкинская тема.
Да итт про джаву нихуя нет лол
То есть в контексте шутки про локальные рашкинские темы и хибернейт ты всерьез стал рассуждать про блм? Пиздец ты шиз.
P.S. Кстати, кто знает, JetBrains о тебе также активно телеметрию собирает, как и Microsoft?
На минте нормально работает. Проверяй права доступа.
Телеметрию собирает, если ты галочку при установке на этом пункте оставил.
Распиши как QA тест кейсы - по шагам.
1.
2.
3.
4.
А то размытый текст, написанный сейчас, трактуется туманно.
> не понимаю пацаны, как вообще это все работает?
Задавай конкретные вопросы, получай конкретные ответы.
Если не можешь сформулировать вопросы, то читай заново теорию пока не получится сформулировать первый вопрос, с которого ты перестал понимать.
Понимание придёт, продолжай читать, решай примеры. Месяц - это только самое начало, если ты раньше не кодил.
Почему данный код нормально отрабатывает бех ConcurrentModificationException
это же настоящий race condition,
у меня есть List, с которым одновременно работают 5 потоков,
хотя бы часть из них вполне может одновременно проверить synchList.size() == 0 и внести -1,но результат обоих sout всегда один - [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
1. Ты создаёшь простой ArrayList. Ему насрать на многопоточность, он её никак не контролирует, поэтому ConcurrentModificationException здесь не может возникнуть в принципе.
2. Executors.newFixedThreadPool(5) не создаёт 5 потоков, выделяет пул на 5 потоков. Иными словами, этот executorService допускает выполнение не более чем пяти потоков одновременно. Самих потоков может быть и меньше.
3. Методом execute ты запускаешь один-единственный поток, который в одно рыло ворочает коллекцией. Поэтому никакой гонки и нет. Тебе нужно сначала создать объекты потоков, поставить их в очередь, а потом разом их все запустить. Через ExecutorService это делается как-то так (пик1).
4. Для создания гонки тебе нужно потоков побольше. Да и проверка коллекции на пустоту, скорее всего, пройдёт нормально даже на очень большом количестве потоков. А вот добавление элементов вполне сгодится (пик 2).
ConcurrentModificationException на сколько я помню не связан с многопоточностью. Его кидает итератор, когда ты во время форич лупа модифицируешь коллекцию
> это же настоящий race condition,
Контроль за атомарным доступом к данным полностью лежит на разработчике. Компилятор тут ничем не подскажет
> хотя бы часть из них вполне может одновременно проверить synchList.size() == 0 и внести -1,но результат обоих sout всегда один - [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Потому что ты из эксекьютора пользуешься только одним потоком, хотя по логике должен вызывать ексекьют 5 раз
Скиньте норм учебников на русском, желательно онлайн
> вкатываюсь в автоматизацию тестирования, для этой цели изучаю жопку, месяц уже учу, дошел до циклов, не понимаю пацаны, как вообще это все работает? сложно что-то, мб так и остаться мануал-макакой?
Пока (счётчик < 10);
{Выполняй следующее условие;}
Для (переменной счётчика; считать до 10-ти; увеличивать на ++1 каждый шаг);
{Выполняй следующее условие;}
Если
{(Вот это значение = правда);
то {
выполняй следующее условие;
}
иначе
{
если
(Вот это значение = правда);
то {
выполняй план б;
}
иначе
{выполняй план с;}
Вот три столпа цитирования. Что тут может быть сложно.
И пока ты с Джавой на "Вы", будь добр грамотно её назвать.
> вкатываюсь в автоматизацию тестирования, для этой цели изучаю жопку, месяц уже учу, дошел до циклов, не понимаю пацаны, как вообще это все работает? сложно что-то, мб так и остаться мануал-макакой?
Пока (счётчик < 10);
{Выполняй следующее условие;}
Для (переменной счётчика; считать до 10-ти; увеличивать на ++1 каждый шаг);
{Выполняй следующее условие;}
Если
{(Вот это значение = правда);
то {
выполняй следующее условие;
}
иначе
{
если
(Вот это значение = правда);
то {
выполняй план б;
}
иначе
{выполняй план с;}
Вот три столпа цитирования. Что тут может быть сложно.
И пока ты с Джавой на "Вы", будь добр грамотно её назвать.
Отправлять с xhr хотел бы любые файлы.
вот это удобно на самом деле, а чтоб довести до автоматизма работу с циклами, надо много решать задачки, кодварс самое адекватное, 7-8kyu как раз по основам, думаю штук 200-300 будет достаточно, чтоб чувствовать себя уверенно в таких базовых вещах
>>083240
Спасибо за хорошие ответы,
ConcurrentModificationException я всё-таки осил, штука заключается в том, что надо модифицировать коллекцию когда итерируешься по ней с итераторами, например в foreach,
там тонкий момент, что итераторы из java.util (а также все синхронны обёртки над коллекциями типа Collections.synchronizedList итд) они все fail-fast и при такой модификации сразу валятся с ошибкой
а вот коллекции из java.util.concurrent реализуют принцип weakly-consistent, когда для каждого потока есть свой снепшот итератора по которому он итерируется и то, что он видит - слабее, чем то, что видит сама коллекция,
в итоге CopyOnWriteArrayList допускает такое одновременное изменение
Скинь на английском. Но только не такой сумбур как 5-6 Spring in Action и не говно мамонта, как 4.
> в итоге CopyOnWriteArrayList допускает такое одновременное изменение
Он делает снепшот всей коллекции, то есть это уже будет другая коллекция, поэтому изменения оригинальной ее не коснутся. А инстанс итератора в коллекциях всегда создаётся заново на каждый форич. И кстати итератор сам не тред сейф, поэтому при итерации нужно лочить весь цикл
И ведь многие рады помочь, да не могут. Специфичные вопросы, на которые не ответишь, если недавно сам не ебался с такой же хуйнёй.
>>084387
Ну вот на стековерфлоу запостил, мб там понятнее описал проблему
https://stackoverflow.com/questions/68187872/generating-avro-classes-in-specific-package
https://coderlessons.com/tutorials/bolshie-dannye-i-analitika/uchitsia-avro/avro-kratkoe-rukovodstvo
Я Джун с Big data не имею никакого опыта. Но когда слышу "один класс перетирает второй идентичный" у меня в голове сразу всплывает:
• Программист поставил знак "=", который отвечает за "присваивание" (твоё "перетирание"), а нужно "==" или equal().
Может это банально, что я именно это упомянул, но вдруг и является твоей проблемой.
Теперь понял. Но я никогда не работал с авро. Вообще про неё впервые слышу. Теперь хоть знаю, что это такое, спасибо.
1) Поменялись ли как-то требования на джуна за последние несколько лет?
Очевидные стримы, лямбды, optional'ы.
2) Есть что-то специфичное для требований к java-джунам именно в ДС2?
Мало ли, может тут на собесах любят спрашивать про КЧ-деревья или загадывать задачки про верёвку и весы.
3) Аноны из ДС2, расскажите свой опыт или как это проходит у вас?
Чел, джава умерла как раз лет 5 назад. Современный бэкенд пишется на быстрых развивающихся языках - пхп7+, ноджс, го, питон.
Если ты хочешь в андроид то там давно Котлин официальный язык.
Треснул мирок первокура? Ничего, столкновение с реальным миром неизбежно. Лучше послушай дядю и открой го тур или доку тайпскрипта.
Съеби.
По своему опыту могу сказать, что каких-то лютых знаний именно Java от меня никогда не требовали, не смотря на то, что я был, есть и, вероятно, буду Java-разработчиком.
Самые сложные темы в новой Java: коллекции (в каждом релизе куча нового), concurrency (та же хуйня), стримы, потоки данных (NIO и NIO2) и функциональные интерфейсы. Причём сложность здесь в том, что эти темы постоянно пересекаются друг с другом. А, и ещё модули теперь.
От джуна лично я стал бы требовать скорее общих знаний в информатике: знание реляционных БД: чем триггер от хранимой процедуры отличается, что такое курсор и индекс; знание сети: чем DNS от DHCP отличается, что такое SSL и SSH; знание операционных систем: умение в Linux и bash/PowerShell.
Специфичные требования от города не зависят. Они будут кардинально меняться даже не от компании, а от конкретного мудака, который пришёл тебя интервьюировать. Один прочитал давеча про управление памятью в JVM, а поэтому будет тебя ебать поколениями кучи. Другой угорел по функциональщине, и будет тебя засыпать тонкостями про лямбды, ссылки на методы и распараллеливание стримов.
А так чё. Идёшь на первый собес. Не вышло — и хуй на них. Идёшь на второй. Не получилось — и их туда же. Не мытьём, так катаньем найдёшь чё-нибудь приемлемое.
Короче, желаю тебе удачи, анон. Не расстраивайся из-за отказов и не прекращай повышать уровень даже после найма.
>>2040661 →
Думал, у меня тред не прогружается после моего старого поста, но нет - бревно интерфейса опять всплыло. Интересно, если нарисовать эту ебаку на собеседовании, когда спросят про интерфейсы, интервьюер оценит?
Я еще и транзакции закрываю.
Зачем? Создавать ссылки на строки с промежуточным результатом надл либо когда у тебя получается слишком длинное выражение, либо одна и та же ссылка используется два и более раз.
Мейвеном проект билдится, отдельно в CMD даже запустить можно и всё работает. А в идее никак не получается запустить.
Все, разобрался
Настроить ран конфигурацию
>От джуна лично я стал бы требовать скорее общих знаний в информатике: знание реляционных БД: чем триггер от хранимой процедуры отличается, что такое курсор и индекс; знание сети: чем DNS от DHCP отличается, что такое SSL и SSH; знание операционных систем: умение в Linux и bash/PowerShell.
Лол, я тип миддл, но так с ходу на эти вопросы не отвечу
нахуя мне это знать, я без этого уже 4 года работаю) понадобится - прочитаю
>Они будут кардинально меняться даже не от компании, а от конкретного мудака, который пришёл тебя интервьюировать. Один прочитал давеча про управление памятью в JVM, а поэтому будет тебя ебать поколениями кучи. Другой угорел по функциональщине, и будет тебя засыпать тонкостями про лямбды, ссылки на методы и распараллеливание стримов.
тут поддвачну
чисто человеческий фактор и удача
не воспринимайте собес, как экзамен, потому что в экзаменах всегда есть четкий список вопросов, а на собесах скорее проверяется охват знаний и то, как ты умеешь общаться
На перечисленные вопросы любой человек с неоконченным техническим образованием может ответить не задумываясь.
Чел, ну ты...
Тебе мама когда нибудь говорила, что ты слегка туповат?
Есть. Но обычно все версии указываются в родительском модуле, а сабмодули их используют без указания версии. Что то вроде мавеновских pom файлов короче
>Но обычно все версии указываются в родительском модуле
И как это реализовано? Я придумал только val depVersion = "1.1.1" объявить на верхнем уровне.
Ну примерно так и есть. Посмотри как это делают в разных проектах например тут https://github.com/InsertKoinIO/koin/search?q=dokka_version в отдельном файле который который потом ещё нужно импортировать в скрипт. Проще сразу в родительском build.gradle в ext записать.
Можешь ещё погуглить как из gradle.properties доставать проперти
while ( a != 1, 222, 34, 45, 51 ), что бы не писать лапшу a != 1 && a != 222 и т.п.
И тут ты такой со своим решением.
У нас байтоёбский тред? Хорошо.
Анон хочет "не писать лапшу", которая выполнится быстрее, чем любые возможные структуры данных успеют проинициализироваться. Все эти массивы-хешсеты и прочие теоретические O(1)-изыскания - хуита по сравнению с тупой проверкой нескольких неравенств. И где тут быстрота?
Сет инициализируется один раз и сам подбирает оптимальную структуру под количество значений (достаточно посмотреть реализующую Set.of() в стандартной библиотеке). Можно присвоить сету с нужными значениями человекочитаемое имя и любой читающий код поймёт смысл проверки, даже не вникая в логику. Если нужно добавить новую проверку, в Set.of() просто добавляется новое значение, а не приписывается новая лапша. Я надеюсь ты пока вкатыш-первокурсник, если не видишь разницу, а не состоявшийся индус.
>Я надеюсь ты пока вкатыш-первокурсник, если не видишь разницу, а не состоявшийся индус.
Это перебор даже для первокурсника. Это скорее уровень курсов по программированию 300к/сек за полгода.
Элементарно делается через доп переменную
extra["huiPizdaVersion"] = "100.500"
dependencies {
...
implementation("org.hui:pizda:${property("huiPizdaVersion")}")
...
}
Через val это еще элементарнее. Короче я понял, грейдл - нежизнеспособная поделка, ждем мавен 4.
Неосилятор спок
16 гигабайт памяти этому сеньору
Гредл норм, но gradle kotlin kts это хуйня без задач
я бы груви конфиг использовал, да и большинство мануалов на нём
Зачем под судо? Дай IntelliJ CAP_NET_BIND_SERVICE.
https://man7.org/linux/man-pages/man7/capabilities.7.html#CAP_NET_BIND_SERVICE
Только зачем тебе для отладки 80 порт? Отлаживай на каком-нибудь другом. 8080 или 8000 часто для этого выбирают.
Хз, браузер не принимает ответ по другим портам, без проблем кидает GET, мой софт его обрабатывает и пишет обратно в поток, но бразуер пишет, что ответ некорректный. Заранее извиняюсь, я в веб ещё не лез ни разу, максимум просто с сокетами работал в крестах и джаве.
И твоя идея не сработала, хотя я не уверен, что правильно дал привелегии, ибо idea у меня в /var/lib/flatpak/app лежит, что странно
Хочу динамично переходить на другую страницу на сайте(не пезагружая всякие футеры хедеры меню)
Так вот у меня мысль просто сервером отдавать скрипту на фронте кусок хтмл(в шаблонах thymeleaf у меня как раз отдельный фрагмент страницы есть)
С другой стороны этот кусок будет отдаваться по какой-то ссылке и если пользователь на нее перейдет, найдет кусок сайта и подумает что за хуйня
В общем костыльно как-то получается
> из IntelliJ Idea запускать отладку под sudo
> Делаю webSSH на чистой джаве без фреймворков,
Не понял, в идее есть некий вебссш которой нужно запустить под судо, или ты свою программу хочешь запустить под судо из идеи?
Некостыльных варианта у тебя два:
1. Забыть об этом
> не пезагружая всякие футеры хедеры меню
И перезагружать целиком
2. Выкинуть thymeleaf и переписать фронт на реакте вуешизики, спок, который сам будет заниматься оптимальной перерисовкой и подгрузкой данных, а на сервере сделать REST API.
Своя программа, мне помогло просто исключить 80й порт из заблоченных:
sysctl net.ipv4.ip_unprivileged_port_start=80
Чел ректал объективно индусское говно из одних проблем, даже раздутый ангуляр лучше. А для петпроджекта лучше вью ничего так и не создали.
> С другой стороны этот кусок будет отдаваться по какой-то ссылке и если пользователь на нее перейдет, найдет кусок сайта и подумает что за хуйня
Отдавай его формой через пост запрос. Но в любом случае это все хуйня, тут ты прав.
Для мавена ищешь в гугле maven jar exe
Для грэдла ищешь в гугле gradle jar exe
Для велосипедистов ищешь jlink
Для неуважения к юзерам используешь bat/sh
Если ты про MVC, то сервисы - часть модели, т.к. в них бизнес-логика.
Модель - данные, сервис - операции над ними.
Или badass-runtime-plugin?
Или даже graalvm.
class Test {
Test test = new Test();
}
В фабричных методах.
Ага, братишка ниже правильно написал про синглтон.
Создаёшь один экземпляр на всех и дёргаешь за него.
Кек
>>Хочу динамично переходить на другую страницу на сайте(не пезагружая всякие футеры хедеры меню)
Turbolinks. Хедеры всякие кешируются и получается быстрее.
>>отдавать скрипту на фронте кусок хтмл
Тогда уж передавай джейсоны. Изобретешь очередной жс фреймворк заодно.
На вышке заставляют учить всякую поебень не связанную напрямую с написанием кода типа устройства сетей. Да и язык почти всегда - 1С/С++ поэтому всплывают вопросы про указатели и виртуальные методы. Зря он что ли страдал 4 года, если платят ему и вкатуну одинаково?
Ну я учился на вмк, 09-14 года, мне например ничего из вышеперечисленного не преподавали
Могу зато двойной интеграл решить. И сказать что такое вторая нормальная форма бд
Только вот в энтерпрайз никогда не возьмут вкатуна без вышки, в отличии от "страдальца"
Ну я про такие вопросы
> >От джуна лично я стал бы требовать скорее общих знаний в информатике: знание реляционных БД: чем триггер от хранимой процедуры отличается, что такое курсор и индекс; знание сети: чем DNS от DHCP отличается, что такое SSL и SSH; знание операционных систем: умение в Linux и bash/PowerShell.
> Лол, я тип миддл, но так с ходу на эти вопросы не отвечу
> нахуя мне это знать, я без этого уже 4 года работаю) понадобится - прочитаю
>>088029
Не смеши, не возьмут только вкатуна без опыта, если хотя бы год опыта реального есть всем похуй на ВО.
Не знаю, анончик.
У меня перед глазами есть знакомые, которые без ВО синьерят на джаве и скале с зп под 400к.
Есть знакомый чувак, который с образованием техникума года 4 назад в Америку укатился.
Вообще не знаю ни одного человека, который бы пытался вкатиться в ит и не вкатился бы. У большинства правда было ВО, но какая нибудь параша, типа диплома таможенника на заочке.
Может тебе ещё РАСЧЁТНЫЙ ЛИСТОК выдают и ты стоишь в очереди в КАССУ за ПОЛУЧКОЙ? К нам похоже гречневый с завода инфильтрировался
Госшиз, спок
Проиграл
Именно такие это и есть ЦА энерпрайза. Бесперспективный планктон, который фигачит свои круды по ПРОВЕРЕННЫМ МЕТОДОЛОГИЯМ и не жужит, переводя свое бесполезное время в деньги заказчика. Это всё таки не рокет саенс.
Меня например взяли с первого собеседования в ИЗВЕСТНУЮ МЕЖДУНАРОДНУЮ КОМПАНИЮ С КОМАНДИРОВКАМИ В СТРАНУ ИНДИЮ, без опыта и вышки. Правда у меня было пару РЕАЛЬНЫХ проектов которыми сам пользовался.
>Меня например взяли с первого собеседования в ИЗВЕСТНУЮ МЕЖДУНАРОДНУЮ КОМПАНИЮ С КОМАНДИРОВКАМИ В СТРАНУ ИНДИЮ, без опыта и вышки. Правда у меня было пару РЕАЛЬНЫХ проектов которыми сам пользовался.
Что-то я не вижу роста новых вакансий.
Ничего. Удивительно не видеть рост вакансий, когда он очевиден.
Етить, это при том что СНГ быдла больше 200 миллионов человек. Как вообще можно найти работу с такой конкуренцией.
Для них основные поставщики вакансий это вебстудии Сокол и Создаватели. Неиронично лучше в пятёрочке работать, чем в такой параше и платить будут больше.
>Джунов без опыта возьмут на удаленку?
Очевидно зависит от твоих навыков и знаний. Если пару тройку проектов более менее крупных есть на гитхабе, то без проблем.
Я просто когда вижу чужой код, реально очень сильно туплю.
Да ищу я, ищу.
StartAndStopUnknownShitFromCmd
мавен
Грубиян
Ты, небось, ещё и ломбоком пользуешься?
Вообще понятно, почему "200 строк" так тебя беспокоят. Потому что в градле постоянно что-то ломается, и приходится переписывать кучу конфигов. А мог бы просто один раз написать бумерский пом.хмл, который будет работать веками.
Хз что там у тебя может ломаться что нужно переписывать кучу конфигов. Скорее всего дело в руках
@
Не обновляешь
@
Все сокрушаются, что ентерпрайз не избавится от старья в виде Джавы
@
Пофиг, главное, что работает
Хуямп
Потому что оба варианта применимы. Если это какая-то серверная приложуха, пути обычно берутся из переменных среды/конфига/БД/откуда-то ещё, если не заданы - значение по умолчанию или ошибка.
Не, я про десктоп, надо было сразу уточнить.
> нужно использовать какой-то файл, который может лежать в неизвестном месте?
Если пользователь знает где этот файл находится:
передавать путь аргументом командой строки
хранить путь в zalupa.properties файле рядом
или в любом виде, хоть бд, хоть раржпег
вычислять путь детерминировано по фазе луны
Если никто не знает где этот файл, то сканировать все диски в поисках какого то файла в неизвестном месте.
> или проверять ожидаемое место, а если там ничего нет, то кидать ошибку?
Как хочешь так и делай. Нужно проверять проверяй. Нужны ошибки кидай ошибки.
На плюсах и шарпе вакансий меньше, а соискателей гораздо больше. Не говоря уже про питон и жс.
Хуйню говоришь, джава самый распиаренный инфоцыганами, после куа и фронтэнд
Рушу твой манямир, иди наверни джавараш вкатыш, все знают и не спорят с этим что вкатышей на джава очень много
Я вот очкую, по 100 раз перечитываю разные статьи по основам, пет проекты уже надоело выдумывать.
Знаю +- кору, спринг вмц и бут основы, хибернейт, многопоточку, посредственно алгоритмы. Надо вот еще за рефакторинг и шаблоны почитать, особо не углублялся.
А еще такое, на собеседованиях можно юзать интеллисенс или тебя заставляют писать код наизусть помня все API? я просто объяснить что как могу, но с запоминанием API у меня почему-то тяжко. Вот когда JS учил, там как-то пободрее все шло (хотя может язык просто бедный из коробки, и там в целом не так много дублирующих вариантов ввсяких разных функций).
>
>А еще такое, на собеседованиях можно юзать интеллисенс или тебя заставляют писать код наизусть помня все API? я просто объяснить что как могу, но с запоминанием API у меня почему-то тяжко. Вот когда JS учил, там как-то пободрее все шло (хотя может язык просто бедный из коробки, и там в целом не так много дублирующих вариантов ввсяких разных функций).
причем и с фреймворками там все бедно, 2,5 функции на весь React и даже запоминать не надо ниче..я хуею
Иди нахуй,
Ты больше будешь ебаться с тем, чтоб тебя на собеседование пригласили, на остальное похуй, на собесе повезет - неповезет, а то всякое бывает
в моем мухосранске всего несколько контор на жабе собеседуют. Одна из которых епам, в которую, мне , очевидно, не попасть.
Врете
Если ты вкатыш без профильного и тд почему ты просто не выучишь пхп и не будешь ебать всем мозг, все равно ты синьором в джава не станешь, а в пхп хотя бы теоретически станешь и в итоге больше денег будешь лутать
Ну расскажи мне?
Близко, но мне нужен именно контейнер, а не менялка. Можно конечно поменять объект на говно (null), но так делать некрасиво.
Иди к каким-нибудь питонщикам-жсникам, они такое любят.
То есть если я делаю, к примеру:
ZipInputStream zin = new ZipInputStream(new FileInputStream(cachedZipFile)
То мне нужно только сделать в конце
in.close()
А FileInputStream(cachedZipFile) схлопентся сам, верно? Или мне его нужно как-то отдельно закрыть?
Находишь библиотеку которая может в hls, там будет апи для манипуляции с буфером байт, находишь библиотеку которая может в видеокодирование и кодируешь ею буфер в видео файл. Хотя может можно hls сразу в файл, но воспроизвести это не каждый плеер сможет
Первое является частью второго (типа упрощенное) или это вообще разные вещи?
>Это для студентов профильных вузов только. Вкатыша нахуй пошлют 9 из 10 контор.
А если я выпускник профильного, но не работал нигде 100 лет? Меня нахуй пошлют сколько контор?
Скорее всего тоже пошлют, но если у тебя уже есть диплом рисуй себе фриланс и иди джуном работать.
Он сам закроет, глянь в исходники, ZipInputStream на close() вызывает реализацию базового класса FilterInputStream - который просто прокси вокруг друго стрима.
Ну не знаю. Понятно, что джава язык популярный и количество курсов по ней хоть и меньше, чем во фронтенде/питоне/бекенде на js, но тоже будет много. Но вкатунов в джаву сейчас не сильно много, в основном это студенты, да и то, далеко не все, так как значительная часть студней уходит в более хайповые языки и технологии.
Когда появлялась java, то все, кто бросал Си, радовались: "ох теперь память распределять не нужно, ох синтаксис удобней стал".
Сейчас с питоном тоже преимущество в упрощении: "ох, теперь синтаксис прост, как XML".
Питон абсолютно искуственно раздутая хуйня без задач, университеты зря ушли от джавы к нему. Это еще аукнется на индустрии запомните этот твит
Но ведь в университетах учат программированию в целом, а не языкам. Питон прекрасно подходит для дрочки алгоритмов, потому что он лаконичный.
Это 2 миллиона аккаунтов. Далеко не все из них платят подписку, большинство зарегались, увидели, что тут всё платно, и слились. Обучающихся там намного меньше.
Худшая инвестиция в твоей жизни. Огромное количество говнокода, оторванные от жизни задачки, 1000 заданий по выводу в консоль какого-то говна.
И ещё не всё пошли полный курс.
Кто не знал, тот 2 месяца по 50$ заплатил и прошел только core.
А кто знал, тот ждал месяц скидочку "100$ за год" и неуспеха прошел всё.
Сейчас на джавараше. Подождал пока предложат 100$ за год.
Ну что сказать. Если полный ноль, то даже лучше чем книга "head first Java", потому что Джава core изучается неплохо. Это как первые классы из школы.
Собраны в одном месте те темы, что тимлиды не разжуют джунам, а буркнут "ты это должен был знать по умолчанию после прочтения книг "Java для чайников".
Они не показывают, где именно это будет полезно в жизни. И все задачи - для вывода в консоль. Хоть бы дали кнопки создать в Java FX и порадоваться интерактиву, API-шку написать для запроса на виджет на Андроиде. Или там, как в Джаве в базу обратиться. Как работать с фреймворками Спринг, Гибернейт, Селениум, ДжейЮнит. То есть такие практические моменты, а не сугубо академические.
Неспеша*
Плюсы джавараша:
- более дешёвая подписка
Плюсы хуйпердскилла:
- 2 месяца и 7 дней можно учиться бесплатно
- структурированная и мелко нарезанная программа
- не самые простые проекты, даже над Easy местами надо думоть
- не совсем оторванная от жизни хуйня - последние проекты хотя бы чуть-чуть знакомят тебя с SQL и спрингом
- чуть более престижно - жопараша у всех на слуху, её обоссывают все кому не лень
- всё на англюсике - не надо гуглить и переводить каждую хуйню обратно на язык оригинала
Но вообще для вката в джаву можно найти и бесплатные более чем достойные альтернативы (причём даже устроенные схожим образом), а дальше все равно придётся книжки читать.
В гиперскилле есть проекты, где нужно использовать спринг
Какие есть в РФ провайдеры? И сколько мне диска нужно будет под джаву, мавен, простгрес, сотню тысяч строчек в базе и логи?
Дороже самой дешёвой не бесплатной хероки? Там 7 баксов, то есть 500рублей. И ещё и сервер ближайший в Германии.
> Если я захочу полноценный пет-проект на спринге запилить, чтобы хостинг был в РФ, то мне нужно купить впс, поставить на него простгрес и джаву?
Да
> Какие есть в РФ провайдеры?
Без разницы
> И сколько мне диска нужно будет под джаву, мавен, простгрес, сотню тысяч строчек в базе и логи?
5 гб
> Дороже самой дешёвой не бесплатной хероки?
Возможно
> Там 7 баксов, то есть 500рублей. И ещё и сервер ближайший в Германии.
Как хочешь
если так одеться, то можно случайно пройти собес на проджект-менеджера
Да, а ещё в жабе все друг с другом на "вы", график строго с 9 до 18, субординация, деловая переписка через документы, отпуск согласовывать за год и перенести потом нельзя, мобильные устройства сдавать на проходной, за баги выговоры и депремирование.
Забыл группу допуска
Ну да. Работа во внутренней сети, есть локальная копия документации используемого стека технологий + полка с бумажными книгами. Общение со сторонними организациями через специальный компьютер по согласованию с безопасниками.
Все так.
Сейчас бы менять мавен на говнейдл, чтобы писать плагины, которые возвращают все как было раньше, лол. В то время как мавен и сам умеет в котлин билд скрипты.
https://github.com/takari/polyglot-maven/blob/master/polyglot-kotlin/src/it/jar-project/pom.kts
Поясните плз. Вот та книга Седжвика, которая щас в магазинах продается, она лучше тех, что в интернете от 2001 года или тоже самое? И чем отличаются книги Седжвика на Джаве и на плюсах по алгоритмам, если кто обе смотрел и проходил
Че зачем?
Понял, спасибо
Но обнаружил, что Java2D и Swing крайне неудобные йобы для таких целей. Что делать? Писать с нуля на какой-нибудь обертке OpenGL/Vulkan для джавы или есть годные либы для 2д графики?
Как насчёт сначала добавить плагин к существующему редактору для пробы? Сомневаюсь что там будет жава правда.
А какие редакторы есть хорошие? Мне фотошоп или гимп не нужны, мне нужно что-то очень простое вроде ms paint, но только с возможностью задавать прямые и кривые координатами в декартовой системе с геометрическими фичами из CAD/CAM. Что-то вроде системы компьютерной алгебры, построителя графиков и сапр одновременно.
Нашел geogebra, она как раз на жабе написана, но чтобы в нее что-то добавить придется перелопатить весь код, в котором я ничего не понимаю.
Иногда надоедает дрочить спринг с его километровыми мануалами и хочется отвлечься, покодить что-нибудь абстрактное.
Я понимаю, что на таких сайтах примерно то же самое, что и
>десять раз скопипасти этот кусок кода и выведи в консоль
Но в процессе решения задачек начинаю копаться в апи, думать как можно реализовать по-другому, опять же смотрю как другие реализовали. Короче непонятно, то ли на пользу идет, то ли нет.
Алсо если занимаетесь таким, посоветуйте сайтики. Литкод уже увидел в шапке. Походу там есть задачки на базы и многопоточку, что круто.
Ладно.
Сплайны это типо кривые линии? В свинге хз, но в джавафх есть компонент Line, который рисует линию на сцене (без канваса то есть), а кривая линия это множество линий поменьше. Если брать рисовать всю геометрию самому, через опенгл и тп, то придется изъебаться с самописной системой лэйаутов и обработкой событий ввода
Я имел в виду векторные опенсорсные, типа inkscape. Можно и плагин накатить, и посмотреть как до тебя делали. Но в инкскейпе кресты плюс питон.
Хз, у меня есть готовые проекты и знания джуна, но что-то никто мне даже не звонит после откликов на вакансии.
Сейчас везде так судя по конфам, кроме фронтенда. Там даже двачеров берут
мимо вкатун с другого стека
У меня есть табличка А, к которой один к одному связана табличка Б. При этом фк в Б является одновременно и пк.
Не могу запустить это все, спрингбут падает.
Class A
@Id
@Column(name = "id")
private int id;
Class Б
@Id
@OneToOne(cascade = CascadeType.All)
@JoinColumn(name = "A", referencedColumnName = "id")
private A a;
Если добавить в Б поле для id, то все будет норм, но зачем, если все fk уникальны и могут юзаться как pk.
Как это запустить?
>у меня есть готовые проекты и знания джуна, но что-то никто мне даже не звонит после откликов на вакансии
Высшее образование есть? На стажировки подавал? В каком городе ищешь работу?
Так это не проблема того, что вкатунов много, а проблема в тебе. Ты не смог показать себя лучше остальных и только ьы в этом виноват. Ну или в маленьком городе живешь, где работы почти нет никакой, тогда не стоит удивляться, что в селе, где 20 вакансий на пхп и 3 на джаву, тебя никто не берет без опыта джавистом. В москве за полгода найти работу вполне реально.
>javarush
Сейчас скиллбокс и скиллфактори на хайпе, какой джавараш, дед? Пару лет назад был гикбрейнс популярен, а джавараш лет 5-6 назад.
Дайте Джава конф и вообще любых норм конф
Если ты используешь сущность в качестве id, то она вместо Id аннотации должна быть EmbeddedId
>>что в селе, где 20 вакансий на пхп и 3 на джаву
>>283 вакансии «Java»
село-миллионник
1 - написала в телегу хрюша из сбера, потом уточнила не свичер ли я и получив подтверждение больше не писала.
2 - звонили с галеры, спросили вывезу ли я интервью с заказчиком на инглише, но я чет не захотел я и по русски хз что ему там "о себе" рассказывать, а тут на инглише, на котором я лет 5 не говорил. Про скилы в джаве даже не спросили.
3 - назначили собес через неделю
4 и 5 - обещали показать резюме тимлиду и перезвонить. 2-й день жду. Походу не перезвонят.
>>В москве за полгода найти работу вполне реально.
Дорого там находиться, если нет квартиры от бабки. 30к-50к за аренду в месяц выкидывать не каждый потянет. А на удаленку редко рассматривают ждуна
Приличного, тесты через моки, конструируемые запросы к бд с параметрами, настроенный https с переадресацией, сохранение картинок на сервере, а данных в бд, относительно большая бд для не коммерческого проекта.
Единственное, там один велосипед с ранней стадии постоянно повторяется, но он связан с фронтендом, который разрабатывал другой человек.
Но хрюша это 100% не поймет и может забраковать.
В прочем, не удивительно, ей же еще 50 таких же разбирать, я бы тоже не стал вникать в чей-то код в таком случае.
Приличного, тесты через моки, конструируемые запросы к бд с параметрами, настроенный https с переадресацией, сохранение картинок на сервере, а данных в бд, относительно большая бд для не коммерческого проекта.
Единственное, там один велосипед с ранней стадии постоянно повторяется, но он связан с фронтендом, который разрабатывал другой человек.
Но хрюша это 100% не поймет и может забраковать.
В прочем, не удивительно, ей же еще 50 таких же разбирать, я бы тоже не стал вникать в чей-то код в таком случае.
>свичер ли я
А зачем в жабу идти свичером? В энтерпрайзе любят высшее техническое профильное образование. Тебе надо было в пыху или жс идти. Быстрее бы процесс шел.
>Но хрюша это 100% не поймет и может забраковать
Хрюши никогда не читают твой код. Пет проджект могут посмотреть на техническом собеседовании или перед ним. До этого момента гитхаб твой максимум могут открыть и посмотреть как хорошо оформлено readme.md. Да и на самом тех. собесе у меня ни разу не смотрели мои говноподелия.
>30к-50к за аренду в месяц выкидывать не каждый потянет. А на удаленку редко рассматривают ждуна
Ну если не получится вкатиться у себя в городе, то собирай деньги и езжай в дс. Жить можно и в хостеле, правда нахуя - не понятно. Пока что почти все собесы удаленно проводят, можно сначала найти работу, а потом через день приехать в ДС.
>>В энтерпрайзе любят высшее техническое профильное образование.
Такое требование в основном у банков/яндексов. К счастью они пока не все попилили.
>>Тебе надо было в пыху или жс идти.
Мне жаба кажется приятнее и проще, чем жс.
Про пыху хз, на ней и вакансий мало. Да и там в требованиях все равно укажут жс(как минимум жквери). Зачем учить пыху+жс, когда можно учить только жс и получать больше в таком случае?
как правило чем больше зп, тем меньше ебут мозги
>>Быстрее бы процесс шел.
Я и не торопился. Я почти джва года джаву учу. Работы нет, тян нет, друзей нет - учеба норм идет.
>>тесты через моки
А меня чет заебало писать бесполезные тесты в петах. Нагенерировал тесты совой, подправил слегка синтаксис - каверадж вырос с нуля до 70% и ладно. Виглядит это пиздецово конечно, а часть и вовсе не работает, но кто будет вникать в тесты.
А потом после таких как ты приходится тратить по пару часов, чтобы понять, почему тест падает
Я ж написал что это чисто для гитхаба на показ, чтоб не задавали тупой вопрос "почему нет тестов?". А то на них пиздец времени уходит, а реальной пользы нет кроме получения навыка написания тестов. Но на самом деле тесты там не такие уж и хуевые для стандартных крудовых сервисов/контроллеров. Хуяня там скорее в их названиях (тест2 - непонятно что тестирует) и в том что сущности каждый раз создает с нуля, когда ее создание можно вынести отдельно. Из за этого очень длинные методы.
PS
Сорри, зря быканул. Но на нормальных проектах так не делай
/thread
Наконец-то.
>реальной пользы нет
Так ты пишешь тесты после кода, буратина. Ясное дело они тебе не нужны, ведь ты уже успел 300 раз перезапустить попердывающий на пружинно-хибернейтовой тяге апп и ручками как макака потестить хуйню, за которую все это время могла отдуваться машина.
> ты уже успел 300 раз перезапустить попердывающий на пружинно-хибернейтовой тяге апп и ручками как макака потестить хуйню
Всегда так делают. Лучше самому убедиться что все работает как нужно, чем доверять каким то тестам.
Лучше код не писать, а самому джейсоны перекладывать в блокноте.
спасибо, но это какой-то хуёвый способ, где надо руками че то там забивать куда-то. так-то можно и тупо руками добавить. неужели нет ничего получше? учитывая что на идее можно педалить чуть не с закрытыми глазами, потому что половину она сама умеет, это странно
, ты...
Метод в сервисе я пишу минут 10, тестирую руками и исправляю еще 10-20. А тесты на этот метод пишу полчаса, а потом столько же чиню эти тесты не сломанный код, а сломавшиеся тесты, если поменяю что то в методе. На проде это оправдано, там таких макак много и надо понимать что все пошло по пизде вовремя, а на петпроекте это долбоебизм.
Или ты там юнит тесты хэлоуворлда приравнял к компонент тестам спринга?
Ну так не используй дату на ентитях, ол аргс в принципе там тоже не нужен, учитывая что в них обычно больше 4 полей.
Да и энтити не нужны. Вы ебанулись, как с ними через JdbcTemplate работать?
не все же тут староверы
>ЮНИТ ТЕСТЫ ТОЖЕ НЕ НУЖНЫ
А вот тут юнит тесты не писали и человек умер на 14:50
https://www.youtube.com/watch?v=jnSHRPCTFPc
Потому что долбоёб перекатывал. Смотри на название и тег, а не картинки.
Картинка джавы, надпись джава скрипт. Это про JSR 223. Ты тупой что ли?
А ещё у нас картинка Двача.
Юзер создает сущность и аплоадит файл(картинка например) к ней
Как это организовать? Предположим юзер в форме выбирает картинку и она сразу заливается на сервер, получачет назад какой-то айди и добавляет себе в сущность и отправляет уже ее
Но если юзер файл загрузил, но потом передумал сохранять сущность, как потом удалить этот ненужный файл?
Какие же жавакодеры ущербные! Вот нодежс господа накатывают в проект любой варез до которого дотянулись их шаловливые рученки.
Можешь сделать таску, которая раз в день будет чистить старые файлы
Какая назуй транзакция? Они коммитятся после выполнения каждого http-запроса, и хуй откатишь, да и файлы хранятся не в БД.
У тебя там максимум что он выдаст это "внимание вы используете си-стиль, роекомендуем жава-стиль"
В самом его названии, долбоеб. Применяется когда нужно просто сделать что-то для каждого слена, независимо от других или их месте в коллекции
Лобкоебы совсем ебанулись. У них уже все что не на лобке работает - легаси. Пиздец.
Делать мне нехуй.
java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics
Какого хуя?
Это не поле, поля через = определяются a = 1; метод в классе определяется только как method() {}, так что это не класс, а обычный объект, там можно писать поля a: zalypa;
за меня кодогенератор иде прекрасно напишет геттеры и сеттеры, так что соси, лобкоблядь
Когда надо получить доступ вызывается read() или write() которые возвращают объект, что-то типа InputStream/OutputStream и в этот момент захватывается соответствующая блокировка. После окончания работы вызывается close() объект реализует AutoCloseable и блокировка освобождается.
Если все делать через try-with-resource то конечно проблем не будет, но мне захотелось добавить защиту от дурака. Надо добавить освобождение блокировки если поток не закрыли и он собирается сборщиком мусора. Проблема состоит в том, что стандартный ReadWriteLock позволяет освобождать WriteLock только из того же треда, из которого он был захвачен и значит в финалайзере его освободить нельзя.
Шо делать?
Нашел канал англоговорящего японца, пишет маленькие игори на свинге. Все делает только на массивах, тонны копипаста, но какой же упорный аутяра. Даже зельду портировал.
Чисто для души контент, вброшу на всякий.
Не до конца понял, чего ты хочешь, но возможно это поможет https://docs.oracle.com/javase/8/docs/api/java/lang/ref/PhantomReference.html
1. Допустим есть класс, помеченный @Document (сущность для монги). В нем я хочу хранить вложенное поле, которое описано в отдельном классе, например MyField. Где создавать этот класс, делать внутренним? Делать отдельным, сохранять в тот же пакет? Или лучше в отдельный вложенный пакет?
2. Есть класс-сервис. Он начинает распухать, и я хочу выделить часть методов в отдельный класс, помечаю его как компонент. В каком пакете хранить такой класс? Рядом с сервисами? Но он не сервис, а чисто вспомогательный
В целом, такие вопросы возникают, если разбивать по пакетам типа сервисы в одном, сущности в другом, контроллеры в третьем итд. Если разбивать, условно говоря, по сущностям и обвязке к ним, то можно все в один пакет ебануть.
Всвязи с этим третий вопрос, как лучше делить? Поидее, второй вариант даже намечает потенциальную разбивку по микросервисам, если когда-нибудь это захочется сделать
Не, не то. Как перехватить момент когда объект собирет сборщик мусора - я знаю. Вопрос был именно в блокировке. ReentrantReadWriteLock не позволяет write lock освободить из другого треда а финализатор вызывается из другого треда.
В общем разобрался - надо использовать StampedLock вот его можно из любого треда освобождать.
глянул. Прикольно, не задумывался даже, что на свинге что-то подобное кто-то мог делать когда-то
А как насчёт обджект-мепперов всяческих? Есть вроде какой-то абстрактный класс, мапящий ResultSet на объект, а также метод для меппинга объекта на набор параметров для NamedParameterJdbcTemplate
Короче проблема в сокращении класпаса с использованием dynamic.classpath=true. Почему никто нахуй не пишет об этом?
600 строк хмл уже написал?
Бляяя!
По коду надо несколько раз захватывать блокировку. Если раньше тред мог спокойно захватить несколько раз write lock то теперь, чтобы это сделать надо передавать stamp через асе вызовы. Сука!
360x480, 2:57
Кто-то там очередной раз просил пояснить за Джавараш. И чтобы продемонстрировать это душнилово, записал специально. Чистый Академ.
В книге Eckel Bruce - On Java 8 есть про тестирование и TDD, можешь там почитать.
Откуда вкатун должен узнать про джаву?
Если вкатун не окатыш, то он знает о тестах.
А в книгах об аанге?
По возможности лучше вообще ничего не хранить в сырых файлах. Плохая масштабируемость, нет транзакций, прихолится изобретать свои форматы и тулзы для работы с ними, в итоге изобретаешь свою СУБД. В сырых файлах обычно хранят большие, плохо структурированные, редко изменяемые данные, вроде картинок. Если не хочешь заморачиваттся с серверами СУБД, бери простой sqlite.
Сад програмач, учу джабу по книжке Васильева А.Н. и появился вопрос, на который он в книге не отвечает.
Вопрос такой, вот у меня есть приватное поле класса private String name;
дальше в конструкторе и методе мы объявляем name = n
Так вот, нахуя мы это делаем? Если в главном классе/методе программы эта n не вызывается, но есть только в аргументе(? - выделил зеленым) конструкта и метода.
При чем не первый раз вижу подобные куски кода у Васильева, которые он не объясняет.
Ты объявил переменную в классе. Как без конструктора и сеттера ты её как будешь инициализировать?
>Начиная с версии Java SE 8, вместо связных списков в заполненных группах хэш-таблиц применяются сбалансированные двоичные деревья.
Рили нахуй?
Ламповая идеха для учебы.
>Рили нахуй?
Защита от намерянных коллизий в хэш кодах ключей.
http://www.shilpikhariwal.com/2012/03/hashdos-dos-using-hash-collision.html
Харе кришна
Эталонная реализация IDE от оракла.
Как и в любом нормальном япе - сделав поле публичным или через рефлексию, на крайняк
Не очень понимаю, в чём вопрос. N в конструкторе и N в методе - это две разные переменные. Можешь в конструкторе или в методе вместо n написать "xyu", ничё не изменится. N - это просто внутреннее условное название для любой произвольной переменной, которую ты потом будешь закидывать в конструктор/метод. Ты можешь потом написать в главном методе "UserPrivateApplication cock = new UserPrivateApplication("Я сосу хуи"), и вот эта строчка внутри конструктора будет обозначаться как n.
Да, так лучше.
Вопрос не в том, как инициализировать ПРИВАТНУЮ переменную. Анон не понимает зачем использовать аргументы в методах. Ты если поле публичным сделаешь как будешь значение инициализировать? А через рефлексию как, если не будешь использовать аргументы в методах?
Дропай Хуйсосильева, качай Head First Java на русском. Там тебе пояснят за ящички и переменные на весёлых картинках.
А бревно-интерфейс там есть?
Переделывай нетбинс на эклипс.
Ахуеть реально
Массивы не нужны.
А ты пробовал в stackoverflow искать? Первая ссылка.
Arrays.stream(matrix).map(int[]::clone).toArray(int[][]::new)
Показалось что это претензия именно к жабе. Вообще если нужен именно систем копи, то двумерный массив можно представить через одноимерный и обращаться к индексу через col + row x colsCount
В петухоне для этого юзают deepcopy, который рекурсивно обходит поля объектов и тупо копирует.
Макакер, спок.
Подскажите, для поиска работы достаточно будет серта OCA, или все-таки лучше посетить и второй курс и сдать OCP? Просто лишнее время тратить не хочется, если OCA достаточно.
Бумер: ахахахахахах какая шаурма дядя может еще сайт барбершопа? пошел нахуй
Автор книги Spring in Action: ээээ лэтс мэйк ин экзэмпл эээ... зе мен феворит фуд... такос шоп
Бумер: ээээ это другое! книга-то хорошая! ррряяяяяя!!
>>Препод джавараша
Ты там типа как в гикбрейнсе учишь прогрнаммированию по зуму?Аааа ээ вот а щас я напишу инт и равно нулю, ммм понятно? Воооот. Все поняли? А? Что такое инт? щас расскажу...
Забыл добавить. Курс именно по 8, не по 11, это похуй же и не столь критично? Или за такие деньги лучше курс 11 явы поискать?
спасибо, хорошо объяснил
Как фиксить? Кор я знаю нормально, но, как выяснилось, не имею ни малейшего представления о том, как разрабатывается ПО. Пикрилы Роберта Мартина - об этом?
Помню, в head first java авторы хотели выработать у читателя привычку писать сначала тесты, а потом само приложение. Или сначала нарисовать, какие будут классы с какими полями и методами. Естественно, я хуй забивал, а теперь жопа горит. На спринге я бы вообще ушёл в пятерочку работать и больше не вспоминал про эти ваши айти ебаные. Что делать? Читать Роберта Мартина?
Сначала покури SQL, любую СУБД и напиши хотя бы один круд с помощью JDBC. Ну не знаю, тред с Двача скачай и сохрани посты в базе, а потом выведи на консоль в другом аппе. Заодно и поймёшь как реюзать классы из других пакетов.
Вот после этого можно учить хибер, после голого jdbc он покажется чудом как спринг бут после сокетов сервлетов
Ну и короткий тутор по мейвену прочитай, если ещё не. Как ты без него хибер подключаешь, джарником чтоле?
Недостатки первого решения в студию, а то получается какой-то неконструктивный пердёж в лужу
Есть Map <Some, Integer> map.
Как с помощью стрима пройтись по мапе, и просуммировать все Integer? Я чувствую что это просто и где-то рядом, но в коллекторах я вообще полумертвый. Вроде бы начало что-то вроде
map.entrySet().stream().collect(....
а дальше у меня не хватает мозгов
Спасибо, круто. Даже о таком не подумал (я довен). А все же через ЭнтриСет как сделать?
Двачую вопрос этого пуре-прогроммизда. Сам такой же.
Хотя идея предлагает заменить на первый вариант.
Спасибо, более менее освежил все это в памяти.
В жабе две области - бэкенд и андроид. Тыкаешь по чуть-чуть обе, выбираешь то, что нравится. В андроиде, к слову, сейчас принято юзать альтернативный синтаксис для джавы, но это не так важно, суть не меняется.
Написал я helloworld в классе Start и дальше ебнул в командной строке:
-javac Start.java
Успех, но пишу дальше ни одна из этих команд не работает:
-java Start
java -classpath . Start
Error: Could not find or load main class Start
А где больше востребованность? После скроллинга хх показалось, что в бэкенде. Так и есть? Или похуй?
Убери из класса строку package, там геморрой. То что ты через точки перечисляешь - это должны быть папки, а cmd должна быть в их корневой директории итп.
Либо запусти CMD из папки src и запусти оттуда с указанием полного имени класса "java -classpath . ru.java.training.fastjava2.demo.Start"
Этот вариант помог, спасибище.
Ты либо крестик сними, либо трусы надень.
Если хочешь запускать из CMD без задней мысли, то не пиши в классе package.
Если хочешь из идеи запускать, то оставь package и не трогай CMD.
Спасибо, что это уточнил, теперь я прозрел
Ок спасибо.
Я курил и sql, и jdbc, и maven. Но стал читать про хибернейт, а там автор пишет всё через тесты и упоминает слои приложения, и я плыву. По отдельности механизмы могу понять, но сложить воедино - нет.
"Ordinarily we’d use a service layer to encapsulate some operations, and in fact we will be adding a service layer as we proceed" - чего блять
"We’re going to design our application much as we’ve written our example code; that is, we’re going to define an application layer (services), and call that application from tests. In the real world, we’d then write a user interface layer that used the services, just as the tests do" - мы такого не проходили
"We’re going to put these methods into an interface, starting at Listing 3-16, but before we do that, we want to abstract out some basic services – primarily, the acquisition of a Session. To do this, we’re going to add a new module to our parent project – the “util” module – with a single class, the SessionUtil" - я это читаю и у меня какая то агрессия и зубы скрипят. Я всегда всё в main() делал, а тут какие-то модули с сервайсами, которые мы сейчас запускаем через тесты, но вместо них мог бы быть граф.интерфейс.
Хз конечно, может и правильно дрочить руками, чтоб получше понять что там происходит на уровне ОС со всеми этими файликами и путями, но ты не думал поставить ИДЕ и запускать все там, с уже приконнекченным рантаймом и без этой ебли бубна?
Да я курс смотрел, там через строку это реализовывалось, ну а хули я хуже? Тоже попробовал, но больше времени потерял, офк.
В head first java наоборот рекомендуют не использовать иде хотя бы первое время обучения.
Баланс важен. Есть наоборот такие книжки, где авторы минуют этап абстракций, и прям сразу хуярят оконные интерфейсы. Это конечно вообще дно, потому что получится полуделфиблядь формошлепская, а не программист. Я к чему... смотри чтоб тебя не заебало это раньше времени, потому что без ИДЕ ты позднее дойдешь до интересного чего-то.
>Я всегда всё в main() делал
Ну поздравляю, чё. Делай не всё в main().
В книге с 1 пика (там где автор пишет класс SessionUtil) супер простой код и понятные объяснения, я сам через нее вкатывался в хибер.
Но тебе нахуй не нужен его класс для своего проекта, создай фабрику сессий в 3 строчки хоть в том же мейне и играйся с базой. Главное прочитай как добавить маппинги и конфигурацию бд.
Большинству похуй на сертификат. Как местным наносекам, так и работодателю. Это конечно круто, но он за тебя не вывезет. Тимлид травитель скажет, ок джаву ты знаешь, но представим есть двухмерный массив... Ну и даже на джуна надо знать спринг, Ты и от пивотала сертификат получать будешь? А потом сертификат постгреса и что нибудь связанное с кафкой, докером и тп.
Другое дело конечно если ты на буржуев работаешь, но я хз на что там смотрят.
Код писать лучше научись. Пет сделай (круд на спринге) - этого для начала тебе хватит.
Приложение не может приконектится к постгресу, пойти в постгрес через docker -it я тоже не могу, нахуй посылает. я где то с переменными окружения проебался?Или волюмы не туда вкинул и все наебулось?
> покажется чудом как спринг бут после сокетов сервлетов
Есть десяток микровебфреймворков. Раздутая спринг параша не нужна.
Не пезди, фреймворки тебе голову вскружили просто.
Тоже проиграл с этого
Нихуя не работает это не описание проблемы.
Покажи ошибку, которую выдает докер. Проверь, можешь ли ты вообще с постгресу подключиться (хоть PGadmin ставь, чтобы проверить).
Внутри докер композа обращайся не по localhost, а по названию сервисов
jdbs:postgresql://db:5432/postgres
Мб порт не нужен, не помню точно
>>Нихуя не работает это не описание проблемы.
Сори, продублировал из ньюфаг треда и забыл приклеить скрины >>2095965 →
>>096028
Спасибо, помогло. Порт мб и не нужен, но 8111 я все равно прокинул, чтоб можно было снаружи отдельно к базе подключиться
Спасибо за ответ. Спринг будет на курсе тоже (по крайней мере в описании был, там не только подготовка на сертификацию, как я понял) + в рамках курса реальная практика на реальном предприятии. Я хз конечно, как оно будет по факту.
Ну и здесь (в Германии), очень жестко дрочат на серты. С массивами я умею работать, как я говорил выше, есть опыт с кучей разных языков, но по чуть-чуть без углубления.
Пиши вменяемый проект на спринге. В любом случае это мало кто смотрит, ты это больше для себя делаешь.
что выбрать?
вроде на первой еще куча энтепрайза пишется
на го только озон видел и кучу ноунейм говнеца
но озон в то же время на жабе стартует новые проекты
вобщем че выбрать для вката в бекенд?
Спросишь в джава-треде, скажут, что джава, спросишь в го-треде - го.
Как считаешь, если нормально оформить, скажем, два проекта, а не один, то это будет плюсом?
Смотрят ли на наличие нормального разделения на коммиты или на джуна не так важно?
мимо другой
Плюсом будет. Главное, чтобы ты смог нормально о них рассказать на собесе, если спросят, делал ли какие-нибудь проекты.
Коммиты не так важны, даже если у тебя 10 коммитов и все в master, вопросов не будет.
В любом случае, когда приходишь на реальный проект, понимаешь, что личные спринговые хеллоуворлды и весь их воркфлоу - это детский сад, который любой миддл сделает за пару часов.
Может кто-нибудь что-нибудь посоветовать?
Обычные шаблонизаторы, freemarker, thymeleaf, jsp. Можно вообще без js всё сделать, хватит хтмл, но рестконтроллеры не понадобятся.
Можешь залить всё. Всё равно это говно никто смотреть не будет.
Советую свагер. Жсом пусть фронт макаки занимаются. Жрут результаты запросов от бэкэнд господинов, так сказать.
Хочу вкатиться 300кк/наносек, научился собирать говнопроекты из категории challenging, но теория там никакая. Где можно почитать про всякие обходы деревьев, солиды, круды и фабрики перед собеседованиями?
Там сложно. Если бы я был достаточно умён для такого, я бы не полез в джаву за 300кк.
Лей все, на количество тоже смотрят.
Это потому что там одни джависты сидят. Можно задавать вопросы по спрингу - ртветят быстрее, чем здесь.
Поясните чому говорят, что новая IDEA говно и сидят на какой-то протухшей 2020?!
Не знаю, я сижу на 2019, потому что в 2020 криво работает мавен и неудобная вкладка "Services".
А 2020 ант не довелось юзать, в 2019 норм.
Хуяны. Нахуя продвигать говно, с которым надо возится, как основной инструмент для работы с языком, который ты разрабатываешь, если есть альтернатива, с которой никаких проблем нет?
Почему у других проблем нет? Зайди уже на сайт гредла и прочти как им пользоваться, или так и будешь ебаться с элементарными задачами.
@
ГРАДЛ ГОВОРИТ "НЕ МОГУ НАЙТИ КЛАССЫ ПУК СРЕНЬК"
@
ГУГЛ СОВЕТУЕТ ОТКАТИТЬ ВЕРСИЮ ГРАДЛА, ВЕДЬ ВСТРОЕННАЯ СЛИШКОМ НОВАЯ
@
РЯЯЯ ДИДЫ С МАВИНОМ ХМЛ НЕМОДНО
Чел этому хипсиерскому говну уже больше 10 лет. Уже все полимеры на поездах уехали пока ты проснулся. Грэдл стандарт всех новых проектов де факто
Я каждый новый New Project начинаю с Gradle.
Благодарю, анон
Почему большая толпа упорно сидит на 2020.1.3 и кричит что не будет перекатываться на 2021? Что там такого IntelliJ вчудила?
Бояться и не хотят осваивать новые технологии. Ретроградство as is
Оно плужит, блять, на 10600k, 16 Gb. Я ебал. Каждое, блять, взаимодействие с UI с задержкой происходит. Эклипс после этого как мана какая-то.
Посоны жабисты, искренне завидую вашим крепким нервам.
Даже VS Code на обосраном Электроне после такой параши вообще как истребитель ощущается. Нахуй так жить? На достаточно актуальном железе набор текста в редакторе Idea с лагом, блять, вы чего?!
>>Грэдл стандарт всех новых проектов де факто
Это только в андроиде и стартапах. В энтерпрайзе никто не собирается с мавена на гредл переходить.
Это ты ещё андроед студию не запускал.
Model - это entity pojo и сама база.
Controller - по сути 3 составляющие:
- Repository - код по i.o. с бд
- Service - непосредственно бизнес-логика
- Controller - i.o. c фронтом и маршрутизация
View - html/js, браузер.
Нет. Модель включает в себя бизнес-логику, т.о. в неё входят репозитории и сервисы
Model - это entity, pojo, сама база. Repository, Service, DAO
Controller - i.o. c фронтом и маршрутизация
View - html/js, браузер.
Странно, всегда думал, что логика это часть контроллера. Даже где-то читал что так должно быть.
Нет, контроллеры должны быть достаточно тонкими, чтобы их можно было быстро переписать. Это просто точки входа, которые должны обращаться к сервисам, возвращать результат в специфичном для view формате и больше ничего.
Вот ArrayList, у него есть add /get, пиши алгоритм на поиск ближайшего в множестве чисел. В смысле ты таксист, который не помнит математику, а не знает о методе sort, кого это ебет вообще ? у нас тут школа для ребят, которые все это на информатике проходили. Вот так я порвался.
Утогул и никто не перекатил. Вот к чему приводит эта хуйня перекатывать после 1000 постов.
https://2ch.hk/pr/arch/2021-07-15/res/1994880.html (М)
Он пиздаболит.
Есть идеи почему так может быть?
Лично мне в голову ничего кроме "минус превратился в дефис" не приходит, но это жижа какая-то.
вот говорят, что обычные сервлеты для каждого соединения создают новый поток?
но это же плохой подход в 2к21 году, разве нет?
открыть 10к соединений разом и все, сервер упадет? или нет?
я так понимаю томкат работает именно таким образом. и спринг соответственно тоже?
разве сейчас не принято писать асинхронный код для таких целей?
Хз, мне кажется что заглавная О была бы немного шире, то есть это было бы заметно. Плюс, эта строка формируется автоматически.
> вот говорят, что обычные сервлеты для каждого соединения создают новый поток?
Нет, говорят, что каждый запрос выполняется в отдельном треде. Треды не создаются на каждый запрос с нуля, они обычно в тредпуле и берутся по мере поступления запросов, затем туда возвращаются. Если треды закончились, запросы тупо ждут, когда треды освободятся, либо сдаётся новый тред и добавляется в пул, сиотря как настроено.
А что насчет асинхронности? Сейчас ведь ее широко используют в этих ваших node.js и го.
Даже nginx и тот асинхронный. На обычных сервлетах разве можно обрабатывать > 10к запросов в секунду?
В итоге получается, что крупные приложения на спринге до сих пор работают на томкате, который использует древнейшие сервлеты?
Есть "реактивные" либы, например, spring webflux, там любят коллбеки и подобное. Ничего похожего на async/await в джаве нет, давно планируют завести виртуальные треды из project loom, чтобы было как в go, но это очень нескоро. Да и в энтерпрайзе это всё нужно редко, так что хватает сервлетов.
Ок. А вот все эти приложения, которые обрабатывают по миллиону запросов в секунду на джаве + спринге реально писать? Я просто понял, что в томкате в роли сервера выступает Coyot, который нормально подходит для небольших серверов. А если адский хайлоад, то реально запустить спринг на какой-нибудь йобе?
Пиздец ну жаба подзорная ничего удивительного хех
Какая версия жабы? На 11 строка "-10" нормально парсится.
Ставишь балансировщик, поднимаешь побольше нод - и вот тебе хоть миллиард запросов.
Тебя в гугле забанили? Ты к самообучение не приспособлен? Тебя потом сеньоры должны учить бинарному поиску? Нахуй ты такой нужен?
Ты понимаешь что написан полный бред. И с технической точки зрения и с финансовой.
>>Вот к чему приводит эта хуйня перекатывать после 1000 постов.
Если джава тред утонет без переката - значит джава все. Но пока такого не случалось.
говно не тонет как ни старайся
Случалось полтора года назад. Два дня сидели без треда.
В платной идее, да.
У меня тоже самое, но фронт и силениум не учил. В дс молодому анону без вышки вкатиться нет шансов.
У меня все ровно наоборот, я студент кампутир саенса и меня зовут на собесы, но из-за недостатка знаний я не прохожу тех специалиста
Заметил что студентоту берут активней. Хотя не понятно на что расчет идёт. Они и на учебе будут загружены и работать парттайм с проебами. Кому такой человек нужен. А свободные люди, которые по сути точно такие же, уже не нужны.
Эклипс божественный, Идея говно на лопате. Ее каждый год оборачивают в код ради кода и она все больше и больше тормозит.
Лучше бы IntelliJ помогла Eclipse Foundation с SWT, чем подпирала костылями мертвый Swing.
В зумерском расте не гуй, а васянство какое-то.
Для гуйни есть электрон и винформс, остальное мертво. Кто ж 15 лет назад знал что оракл подложит такую свинью всему свингерам.
С джина да
В каком городе ищешь и как давно?
> Ещё тормознее, чем гуй на жабе.
Ну ВЗкод в некоторых аспектах быстрее идеи работает, но полноценной ИДЕ конечно не ровня. Ну и тормознутей чем жаваФХ нет ничего в принципе
> Только на винде.
Если через моно разрабатывать, он на всех десктопах будет работать
Без комплюхтер саенс бумажки в уютный жава мир не возьмут. Есть лайфхак: сейчас у рабовладельцев тренд на фулстак спецов. По факту большую часть времени занимаешься бэком на спринге, но и приходится жонглировать пропсами на реакте (на ангуляре если легаси проект). Такие позиции конечно будут не в кровавом энтепрайзе, но на галеры залетишь хоть с девятью классами.
Так он весь фулстек и перечислил, там в конце всякое жс говно идёт.
Вообще это паста с хабра, где в комментах порешали, что проблема у чела с головою потому что он двачер
> Без комплюхтер саенс бумажки в уютный жава мир не возьму
Что скажешь по поводу того, что в подавляющем большинстве джуновских вакансий в ДС2 про какие-либо требования к образованию ни слова?
Они сейчас пилят новую IDE на "самописном SWT".
>Вообще это паста с хабра
Пиздец, а я уже расстроился. Вот нахуя так делать. Но в итоге у него всё хорошо получилось.
Или Про Спринг.
И как разруливаются в рест сервисах пермишины?
Обмазывать методы контроллеров @RolesAllowed, @PreAuthorize и прочими аннотациями?
>>чего такого не хватает в Eclipse
Нормального статического анализатора, интеграции всего инструментария в одном месте.
>>самые ходовые
ArrayList, HashMap, HashSet
>>понятно нах столько много их и где какую лучше использовать.
Реализация разная и под разные задачи одни подходят лучше других. Вообще любой гайд по джаве почитай метанит или книжки, если ретроград, там распишут какие коллекции для чего нужны.
Интелиджесенса
Пиара не хватает)
Не ври. Я очень тупой и гиперскилз очень доступны. Там есть топики и по алгоритмам тоже. Намного доступнее всех альтернатив на кодварсе/степике. И глубже джавараша.
>>097849
Спринг ин экшн слишком экшн. Там ничего не понятно без предварительной подготовки.
Проспринг очень большой и много лишнего написано.
Советую теорию:
https://www.youtube.com/watch?v=5ePo08sqcpk&list=PLAma_mKffTOR5o0WNHnY0mTjKxnCgSXrZ
https://nnmclub.to/forum/viewtopic.php?t=1427342
И практику:
https://www.youtube.com/playlist?list=PLU2ftbIeotGoGSEUf54LQH-DgiQPF2XRO
Вкатуну с высшим обидно.
https://snyk.io/jvm-ecosystem-report-2021/
В 2021 году разработчики впервые стали больше использовать Java 11, чем Java 8. Такими данными поделилась компания Snyk в своём ежегодном отчёте "JVM Ecosystem Survey" за 2021 год. Snyk проводила опрос совместно с Azul с февраля по март 2021 года среди более чем 2 тысяч разработчиков Java.
Как показывают результаты опроса, в продуктовых окружениях Java 11 использует 61.5% респондентов, что на 1.6% больше, чем Java 8. При этом последние версии Java (14 и 15 на момент опроса) имеют цифры 4.9% и 11.7% соответственно. Это существенно больше, чем постепенно уходящие в небытие Java 6 и 7, которые имеют всего 1.9% и 3.8%.
В разработке же новые версии имеют ещё большую популярность: Java 11 использует 64.3% респондентов против 50.1% у Java 8. Java 15 использует 25.6% опрошенных.
В отчёте также присутствует множество других интересных данных, например:
Наиболее популярный дистрибутив JDK – AdoptOpenJDK (44.1%). Второе место у Oracle OpenJDK (28%).
Kotlin – второй популярный язык после Java (17.7% и 91% соответственно). Groovy использует 13% опрошенных.
IntelliJ IDEA – с большим отрывом самая популярная IDE (71.6%). Следующий идёт Eclipse, у которого всего 24.6%.
Среди билд-систем больше всего используется Maven (76.2%). У Gradle цифра более скромная – 38.1%.
Репортнул твою мать за ненадлежащее поведение.
С ней ебутся во всяких бигдатах, с джавой не пересекается, друг на друга похуй.
Там все очень легко.
Были задачки, типа калькулятора, которые я дропнул. Но это потому что там скучно было с парсингом ебаться, а не сложно. А потом бесплатная часть кончилась. Но 70% я прошел и очень доволен.
Если не понимаешь - читай комменты. Если и с комментами не можешь, гугли ответ и разбирайся в решении. Если не можешь нагуглить - переходи к следующей задаче.
Ну оно, наверное, тормозное на слабых системах из-за статического анализатора, заполняющего оперативку своими синтаксическими деревьями. Чёт сомневаюсь, что есть ещё что-то с таким же набором фич или больше, но менее ресурсоёмкое
10600k @ 5.2 и оно не работает в реалтайме, ощущается лаг во всем. Даже инпут лаг в наборе текста, лол. После VSCode как говна с ложки съел.
Так бумерки, чтобы осенью все на свежую лтс перешли, понятно?
Пока обкатают, а спринг и остальное говно добавит поддержку 17, пройдёт ещё полгода. Самые радикальные хипсторки только к зиме на 17 пересядут.
Если этому говну не хватает 16 Гб в купе с NVMe SSD 3 Гб/c, то я ебал, я сматываюсь.
Ну пиши в вс-коде, в чем проблема?
Не находил. Сам пока очень поверхностно знаю. Изучал по статьям(не очень хорошим, не могу посоветовать).
Допустим надо отдать статическую страницу, мы просто используем Спринг МВС и возвращаем статику и кастомизируем её с помощью какого-нить таймлифа.
Если у нас фронт в виде СПА на каком-нить реакте, тогда мы уже используем архитектуру типа REST или другие и гоняем туда сюда Жсоны. Но рендеринг происходит в таком случае на клиенте.
Как быть, если хочется сделать сервер сайд рендеринг на спринге? Я видел реализации с помощью скрипт энжина, типа нашорна, но он медленный и теперь уже депрекейтед. Альтернатива - поставить грааль вм, но приложение раздувается, и слишком много лишних движений. То есть, получается остается только использовать ноду с её фреймворками в качестве дополнительного узла, который выполняет SSR и делегирует логику спрингу. Есть ли еще какие-то подходы?
Ну так юзай фреймворки которые поддерживают SSR.
Спринг отдаёт json'ку, фреймворк её ловит и рендерит, а потом отдаёт клиенту. @@@ PROFIT!
> server-side rendering
Зумеры изобрели шаблонизаторы, да?
А чем тебе шаблонизаторы типа таймлифа не SSR? Или я чего-то не понимаю?
Бамп
В Apache Commons есть такая штука, называется Daemon, может то что нужно.
https://cwiki.apache.org/confluence/display/commons/Daemon
Vlad Mihalcea
Это как я понял отдельная утилита чтобы запускать джава приложения как сервисы. А мне надо просто вызвать из джавы какой-то шелл скрипт и завершить процесс джавы, но чтобы шелл скрипт остался работать.
Vaadin
Я пишу свой первый бекенд на java EE сервлетах, потом оборачиваю мавеном и заливаю на хероку.
Для работы хероку нужно смотреть переменные окружения, как мне правильно это устроить? Куда мне эти переменные вставлять, чтобы код был независим от хероку и можно было в случае чего легко подставить свои?
System.getenv(). Ничего придумывать не надо, ты эти переменные можешь установить где угодно, например, при локальном запуске сервера приложений.
То есть прямо в коде?
Ну я просто подумал, что грамотнее их как-то достать и сложить или как параметр в pom.xml или в web.xml. Ну и в коде уже эти параметры доставать. Типо нагляднее что ли что откуда я достаю.
Такое уже есть у Апачей.
Майнкрафт.
Пиши то, что тебе интересно.
Мне нужно сделать из них один LinkedList с 10ю элементами.
Брать каждую позицию из всех списков и, сравнивая их, помещать в итоговый 1 из выбранных значений. Как эффективнее всего это сделать?
Почаны, подскажите плез
Нахуя тебе линкед лист для 10 элементов
> Как эффективнее всего это сделать?
Выбросить его нахуй и сделать нормально через Deque
В мухосранске может и норма, но в ДС это дикость.
>неоплачиваемая стажировка
У меня одноклассник остался в мухосранске и работает бесплатно пыхарем в одной местной веб студии. Говорит, что обещают в штат взять, как только вакансия освободится.
>Итерироваться через цикл, в который вложен еще один цикл?
Цикл нужен один, тебе нужно или 10 счетчиков по одному на каждый список или Deque и удалять элемент который был вставлен в результирующий список.
Тебе нужен айдентити, и он должен работать. Скорее всего, проблема в чем-то другом
Можешь на javaFx что нибудь запилить. Не обосо трудный фрейм, я под проект использовал, всем понравилось.
Что лучше использовать? Я так понял сейчас многие с реддиса уходят на аероспайк, архитектурно очень отличаются.
Что более актуально под кластеры сейчас?
Сбер. Большинство внутрибанковских систем, конечно, написано на жабе, но всякое попадается: котлин (в бэке наравне с жабой и ещё на мобилках), питон (анализ данных), плюсы (банкоматы и разное специфичное оборудование), го/шарп/php (некоторые небольшие по меркам жабы приложения).
Чет с Deque я вообще не работал никогда, спасибо, почитаю.
Вопрос в сторону, Анон:
Я вот пытаюсь представить эти циклы-в-циклах или какие-то более сложные выборки и в голове сложно как-то представить четко. Более того, я даже когда на бумаге пытаюсь расписать (или в коде), то трудновато все равно это.
Это пройдет со временем? Тупо опытом написания таких и аналогичных алгоритмов это исправляется?
Или как-то можно еще чем-то потренировать мышление, чтобы легче было?
1. Рисуй на бумажке/доске алгоритм и данные.
2. Тренируйся решать задачки.
3. Какие нибудь простые задачки решай вначале в блокноте, а потом проверь алгоритм в уме очень полезный навык если будешь собеседоваться в фаанг какой нибудь. А потому уже переноси в IDE/литкод и проверяй.
>Рисуй на бумажке/доске алгоритм и данные
Да вот делаю так, но все равно пока RAM в голове не справляется. Перерисовываю схемы по пять раз, но все равно полная картина долго строится и детали теряются. Когда какой-нибудь двойной цикл (вложенный один в другой) пытаюсь представить, то порой у меня в голове создается что-то типа бесконечного цикла. Зацикливаюсь и зависаю(
Видимо, нужно больше практики
Тебе не надо представлять цикл, цикл это просто способ реализации алгоритма. А сам алгоритм это описание того что ты делаешь.
Например, как смержить два сортированных массива: ставим 2 указателя на начало массива, сравниваем элементы, записываем меньший в итоговый массив, двигаем указатель, повторяем пока не закончится один из массивов и т.д. Вот это и рисуй 2 входных массива с какими нибудь реальными данными, указатели в первом и втором, результирующий массив. И пошагово выполняй свой алгоритм, заполняй результирующий массив.
Можно и без свинга, клиент тоже консольный. И вообще, клиентское ядро в виде отдельного модуля организовать, ну и прилепить её к консольному и графическому клиенту.
lists.stream().flatMap(x -> x.stream()).filter(x -> / здесь предикат с условием отбора /).collect(Collectors.toCollection(LinkedList::new));
Это может звучать немного резковато, это просто моё скромное мнение, но есть две вещи, которым традиционно учат в университетах в курсе компьютерных наук (Computer Science, CS) и которые многие люди никогда полностью по-настоящему так и не понимают: указатели и рекурсия.
В самом начале обучения в колледже вы проходите курс структур данных, со связанными списками, хеш-таблицами и прочими мелочами, с широким использованием указателей. Такие курсы довольно часто используются как курсы для отсева: они так сложны, что все, кто не обладает мыслительными способностями, необходимыми для CS, бросают, и это очень хорошо, потому что если вы думаете, что указатели сложны, то подождите пока вам не придётся доказывать факты теории неподвижной точки.
Все те юные гении, которые в старших классах школы писали на Бейсике пинг-понг для Apple II, поступают в колледжи, выбирают CompSci 101, курс по структурам данных, и когда сталкиваются с работой с указателями, их мозги просто взрываются, и они решают перевестись на политологию, потому что теперь правовая школа кажется им лучшим выбором. Я много раз видел графики отсеивания студентов с курсов CS, и обычно процент выбывших составляет от 40% до 70%. В университетах склонны считать это разбазариванием; я думаю, что это просто необходимая естественная отбраковка людей, которые просто не смогут быть счастливы или успешны в карьере программиста.
...
В Java нет ничего достаточно сложного, чтобы реально отсеять программистов без той части мозга, которая отвечает за указатели или рекурсии, соответственно уровень отсеивания в университетах понижается, факультеты CS выпускают больше студентов, за это получают больше денег, и всем становится хорошо.
Счастливые ученики Java-школ никогда не столкнутся с ужасными segfault при попытках реализовать основанные на указателях хеш-таблицы. Они никогда не будут делать безумных, сумасшедших попыток упаковать что-то в биты. Они никогда не будут загружать свои головы мыслями о том, как в полностью функциональных программах значение переменной никогда не изменяется, и все-таки оно постоянно изменяется! Парадокс!
Им не нужна эта часть мозгов, чтобы получить красный диплом.
Неужели я всего лишь один из тех старомодных ворчунов, вроде Четырёх Йоркширцев, которые хвастаются тем, как тяжело было жить в суровые старые времена?
Эй, в 1900 г. латынь и греческий были обязательными предметами в колледже, не потому, что они были как-то необходимы в жизни, но потому, что их знание было одним из обязательных признаков образованного человека. В некотором смысле мои аргументы не отличаются от тех аргументов, которые приводили сторонники латыни (все четыре). «[Латынь] тренирует ваш ум. Тренирует вашу память. Распутывание предложений на латыни — это отличное упражнение для ума, настоящая интеллектуальная головоломка, и хорошее введение в логическое мышление», писал Скотт Баркер (Scott Barker). Но я не смог найти ни одного университета, который до сих пор преподаёт латынь в обязательном порядке. Неужели указатели и рекурсия — это латынь и греческий компьютерных наук?
Итак, я легко соглашусь с тем, что программирование указателями сегодня не является необходимым в 90% разработки кода, и даже представляет опасность в промышленном коде. Да. Прекрасно. И функциональное программирование не так уж часто используется на практике. Согласен.
Но это все ещё важно для некоторых из самых восхитительных программных разработок. Например, без указателей вы никогда не сможете работать над ядром Linux. Вы не сможете понять ни строки кода Linux или любой операционной системы без реального понимания указателей.
Без понимания функционального программирования вы не сможете придумать MapReduce — алгоритма, который делает Google столь хорошо масштабируемым. Термины Map и Reduce пришли из Lisp и функционального программирования. MapReduce понятен любому, кто помнит из своего курса, эквивалентного 6.001, что истинно функциональные программы не имеют побочных эффектов и поэтому легко распараллеливаемы. Очень показателен тот факт, что в Google изобрели MapReduce, а в Microsoft нет, и это говорит кое-что о том, почему Microsoft до сих пор играет в догонялки, пытаясь заставить работать основные функции поисковой машины, в то время как в Google перешли к следующей проблеме: построению Skynet...(стирает) величайшего в мире параллельного суперкомпьютера. Я не думаю, что Microsoft действительно понимает, насколько они отстали на этом пути.
Но даже вдали от задач, где важность указателей и рекурсии очевидна, их реальная значимость в том, что создание больших систем требует той гибкости мозга, которую вы получаете при их изучении, и тех способностей мозга, которые были вам необходимы для того, чтобы не вылететь с курса во время обучения. Указатели и рекурсия требуют от человека определённых способностей: рассуждать, абстрактно мыслить, и, что особенно важно, видеть проблему на нескольких уровнях абстракции одновременно. Поэтому способность понимать указатели и рекурсию напрямую связана со способностью быть великим программистом.
Ничто в образовании, построенном полностью на Java, не отсеивает студентов из-за недостаточной гибкости их мозгов для понимания этих концепций. Как работодатель, я вижу, что 100%-Java школы начали штамповать выпускников курсов CS, некоторые из которых просто недостаточно умны для того, чтобы работать программистами с чем-то более замысловатым, чем Ещё Одно Бухгалтерское Приложение На Java, хотя они и управились со скрипом с «современной-упрощённой-для-тупиц» курсовой работой. Эти студенты никогда не справились бы с курсом 6.001 в Массачусетском Технологическом, или с CS 323 в Йеле, и, честно говоря, это и есть причина, почему, с точки зрения работодателя, диплом Массачусетского Технологического или Йеля имеет больший вес, чем диплом Дюка, который недавно стал Полностью-На-Java, или Penn University, который заменил Scheme и ML на Java, пытаясь преподавать на ней курс, который когда-то почти убил меня и моих друзей, CSE121. Дело не в том, что я не хочу нанимать умных ребят из Duke или Penn — я нанимаю их — просто мне гораздо сложнее понять, кто они. Раньше я мог сказать, что парень действительно умён, если он за несколько секунд может разобраться в рекурсивном алгоритме, или реализует функции, манипулирующие связными списками на основе указателей, с такой скоростью, с которой он может писать на листе бумаги. Но в случае выпускников школ Java я не могу сказать, имеет ли претендент проблемы с этими задачами, потому что у него просто не хватает соответствующего образования, или потому, что у него нет соответствующей части мозгов, необходимой для отличной работы в качестве программиста. Пол Грэхэм называет их Горе-Программистами.
Это может звучать немного резковато, это просто моё скромное мнение, но есть две вещи, которым традиционно учат в университетах в курсе компьютерных наук (Computer Science, CS) и которые многие люди никогда полностью по-настоящему так и не понимают: указатели и рекурсия.
В самом начале обучения в колледже вы проходите курс структур данных, со связанными списками, хеш-таблицами и прочими мелочами, с широким использованием указателей. Такие курсы довольно часто используются как курсы для отсева: они так сложны, что все, кто не обладает мыслительными способностями, необходимыми для CS, бросают, и это очень хорошо, потому что если вы думаете, что указатели сложны, то подождите пока вам не придётся доказывать факты теории неподвижной точки.
Все те юные гении, которые в старших классах школы писали на Бейсике пинг-понг для Apple II, поступают в колледжи, выбирают CompSci 101, курс по структурам данных, и когда сталкиваются с работой с указателями, их мозги просто взрываются, и они решают перевестись на политологию, потому что теперь правовая школа кажется им лучшим выбором. Я много раз видел графики отсеивания студентов с курсов CS, и обычно процент выбывших составляет от 40% до 70%. В университетах склонны считать это разбазариванием; я думаю, что это просто необходимая естественная отбраковка людей, которые просто не смогут быть счастливы или успешны в карьере программиста.
...
В Java нет ничего достаточно сложного, чтобы реально отсеять программистов без той части мозга, которая отвечает за указатели или рекурсии, соответственно уровень отсеивания в университетах понижается, факультеты CS выпускают больше студентов, за это получают больше денег, и всем становится хорошо.
Счастливые ученики Java-школ никогда не столкнутся с ужасными segfault при попытках реализовать основанные на указателях хеш-таблицы. Они никогда не будут делать безумных, сумасшедших попыток упаковать что-то в биты. Они никогда не будут загружать свои головы мыслями о том, как в полностью функциональных программах значение переменной никогда не изменяется, и все-таки оно постоянно изменяется! Парадокс!
Им не нужна эта часть мозгов, чтобы получить красный диплом.
Неужели я всего лишь один из тех старомодных ворчунов, вроде Четырёх Йоркширцев, которые хвастаются тем, как тяжело было жить в суровые старые времена?
Эй, в 1900 г. латынь и греческий были обязательными предметами в колледже, не потому, что они были как-то необходимы в жизни, но потому, что их знание было одним из обязательных признаков образованного человека. В некотором смысле мои аргументы не отличаются от тех аргументов, которые приводили сторонники латыни (все четыре). «[Латынь] тренирует ваш ум. Тренирует вашу память. Распутывание предложений на латыни — это отличное упражнение для ума, настоящая интеллектуальная головоломка, и хорошее введение в логическое мышление», писал Скотт Баркер (Scott Barker). Но я не смог найти ни одного университета, который до сих пор преподаёт латынь в обязательном порядке. Неужели указатели и рекурсия — это латынь и греческий компьютерных наук?
Итак, я легко соглашусь с тем, что программирование указателями сегодня не является необходимым в 90% разработки кода, и даже представляет опасность в промышленном коде. Да. Прекрасно. И функциональное программирование не так уж часто используется на практике. Согласен.
Но это все ещё важно для некоторых из самых восхитительных программных разработок. Например, без указателей вы никогда не сможете работать над ядром Linux. Вы не сможете понять ни строки кода Linux или любой операционной системы без реального понимания указателей.
Без понимания функционального программирования вы не сможете придумать MapReduce — алгоритма, который делает Google столь хорошо масштабируемым. Термины Map и Reduce пришли из Lisp и функционального программирования. MapReduce понятен любому, кто помнит из своего курса, эквивалентного 6.001, что истинно функциональные программы не имеют побочных эффектов и поэтому легко распараллеливаемы. Очень показателен тот факт, что в Google изобрели MapReduce, а в Microsoft нет, и это говорит кое-что о том, почему Microsoft до сих пор играет в догонялки, пытаясь заставить работать основные функции поисковой машины, в то время как в Google перешли к следующей проблеме: построению Skynet...(стирает) величайшего в мире параллельного суперкомпьютера. Я не думаю, что Microsoft действительно понимает, насколько они отстали на этом пути.
Но даже вдали от задач, где важность указателей и рекурсии очевидна, их реальная значимость в том, что создание больших систем требует той гибкости мозга, которую вы получаете при их изучении, и тех способностей мозга, которые были вам необходимы для того, чтобы не вылететь с курса во время обучения. Указатели и рекурсия требуют от человека определённых способностей: рассуждать, абстрактно мыслить, и, что особенно важно, видеть проблему на нескольких уровнях абстракции одновременно. Поэтому способность понимать указатели и рекурсию напрямую связана со способностью быть великим программистом.
Ничто в образовании, построенном полностью на Java, не отсеивает студентов из-за недостаточной гибкости их мозгов для понимания этих концепций. Как работодатель, я вижу, что 100%-Java школы начали штамповать выпускников курсов CS, некоторые из которых просто недостаточно умны для того, чтобы работать программистами с чем-то более замысловатым, чем Ещё Одно Бухгалтерское Приложение На Java, хотя они и управились со скрипом с «современной-упрощённой-для-тупиц» курсовой работой. Эти студенты никогда не справились бы с курсом 6.001 в Массачусетском Технологическом, или с CS 323 в Йеле, и, честно говоря, это и есть причина, почему, с точки зрения работодателя, диплом Массачусетского Технологического или Йеля имеет больший вес, чем диплом Дюка, который недавно стал Полностью-На-Java, или Penn University, который заменил Scheme и ML на Java, пытаясь преподавать на ней курс, который когда-то почти убил меня и моих друзей, CSE121. Дело не в том, что я не хочу нанимать умных ребят из Duke или Penn — я нанимаю их — просто мне гораздо сложнее понять, кто они. Раньше я мог сказать, что парень действительно умён, если он за несколько секунд может разобраться в рекурсивном алгоритме, или реализует функции, манипулирующие связными списками на основе указателей, с такой скоростью, с которой он может писать на листе бумаги. Но в случае выпускников школ Java я не могу сказать, имеет ли претендент проблемы с этими задачами, потому что у него просто не хватает соответствующего образования, или потому, что у него нет соответствующей части мозгов, необходимой для отличной работы в качестве программиста. Пол Грэхэм называет их Горе-Программистами.
Интересно, судя по тексту автору за 50, если он еще жив какое у него мнение было бы про нынешнее поколение питонистов и джавскриптеров (а эти языки теперь вместо жабки дают в вузах).
> судя по тексту автору за 50
И ты угадал.
https://www.joelonsoftware.com/2005/12/29/the-perils-of-javaschools-2/
https://en.wikipedia.org/wiki/Joel_Spolsky
У деда поднялось давление, потому что в джаве нет указателей, на которые он дрочил всю жизнь (вместе с рекурсией) и потому что майкрософт отстала от гугла.
А то пиздец какой-то.
Спасибо, анон. Буду пробовать. Мб еще подскажешь какие-нибудь книги для развития/тренировки думалки и абстрактного мышления?
Насколько эти вещи вообще прокачиваемы?
Ну я помню, что обычный tcp чатик без сохранения данных 1 на 1 у меня 20 строчек занимал на клиенте и 30 на сервере. Если сделать многопользовательский и записывать в тхт/sqlite ну еще 50. Такой себе проект.
Этот чел в 2017 выпустил онлайн-иде для джаваскрипта.
Тут скорее дело наврешь ли ты в резюме про опыт или нет. А так откликайся конечно, не факт просто что тебя до собеса хотяб допустят
ХХ сру это для фейковых вакансий, которые эйчары вешают для закрытия каких-то там юридических моментов. Я работу смог найти только написав на почту в компанию мечты бтв на их сайте тоже требовали вышку и год опыта на июня, но в реальности всем похуй оказалось
Начни с Грокаем алгоритмы - там достаточно простые идеи обсуждаются и доступным языком.
Из практики мне помогает литкод и внезапно ЕГЭ по информатике, просто возьми один вариант и прорешай все задачи на логику и алгоритмы.
Есть еще абстрактный класс с методом public abstract void consume(T message), от которого наследуются все другие листенеры и реализуют этот метод. Может в абстрактный класс можно хуярнуть этот самый save?
Я в своей первой компании помню месяц так страдал хуйней. "Настраивал" и "изучал" проект. Только потом начали выдавать задачи и баги на фикс, и те уровня "пофиксить возможную SQL-инъекцию"
Я вообще две недели "ознакамливался", нихуя не было понятно. Дальше были простые задачи типа фиксить опечатки или скопировать код из коммента тимлида из джиры в указанное место в проекте. Иногда бывало и такое, что нет задач, и целый день занимаешься хуйнёй. Потом задачи стали сложными, и хуепинания стало намного меньше.
>и 30 на сервере
Подожди. Мы говорим про чат - аналог телеграма. Где юзер будет логиниться, выбирать нужный чат (или искать новый) и уже там писать. Может выбирать как конкретного пользователя, так и целую группу. Может создавать новую группу указывая юзеров и может устанавливать права админа.
Такое на свинге или в консоли сделать практически нереально. Нужно сразу начинать как веб приложение на спринге, с нормальными HTML/CSS/JS интерфейсами и прочим. Ну или vaadin взять, вроде прикольная штука. Для стажера или джуна +- норм проект сойдет, только еще нужно тесты написать, подготовить CI/CD, мб в докер вообще запихнуть все. Ну чтобы попробовать как можно больше технологий. Само собой информацию хранить в БД, взять тот же постгрес + хибернейт.
Я нарисовал полгода, про былые заслуги отвечал уклончиво мол пилил фичи, фиксил баги. Джуна все равно больше будут по теории гонять, если что проси тестовое.
Откликался само собой на 1-3 года, на "без опыта" и всякие трейни забей - там конкурс ебанутейший и денег не дадут.
Правильно ли критерием java se считать запрет использование библиотек, реализующих спецификацию сервлетов?
Я считаю конечно да. Но выше не только о сервлетах, но и о jpa-хибере говорилось.
Бамп вопросу
На свинге проще наформошлепать такое, чем ебаться с
>html/css/js
Но последнее всяко полезнее надрочить плюс красивее будет.
Не понимаю нескольких вещей.
Как вообще здесь выводить картинки? Нужно, чтобы каждая карточка была объектом, а объекты в таблице или в самописном другом объекте?
Где вообще все это писать?
Рядом есть главный класс, но в нем нет никаких упоминаний о файле фрейма и наоборот. Где что прописывать и почему он все равно запускается при запуске проекта?
На джава SE ничего толком юзабельного не напишешь. Ну кроме как программ по выводу в консоль разного говна. Таких полно на литкоде и кодварсе. Что-то полезное как правило всегда идет в связке с БД и пересылкой данных по интернету. Ну или графику писать, движок свой на LWJGL, но это на мазохизм похоже. На чистой джаве я вот вообще не знаю что сделать интересного.
Можно написать свою джаву ЕЕ и свой оракл.
Ну захуярь.
Как вариант сделать общий перехватчик сообщений, перед поступлением в консюмера, возможно это подойдёт, особо не вникал, но по названию вроде подходит https://kafka.apache.org/0100/javadoc/org/apache/kafka/clients/consumer/ConsumerInterceptor.html
Двачую
А почему кстати у многих платформ например тот же хттп сервер есть искаропки(питон, нода, пхп), а в джаве вся эта мозгоебля с сервлет апи и прочими библиотеками?
В джаве это все давно уже есть. Ты читаешь книжки по хуй знает какой старой версии.
com.sun.net.httpserver.HttpServer
Вообще всё это говно одинаково годится только для тестовых целей, в проде это никогда не юзают. Даже для разработки не годится, слишком уж мало они умеют, а тащить полноценный веб-сервер в стандартную библиотеку было бы странно.
Просто жабу не принято считать "языком для написания сайтов", она скорее для написания бизнес-логики, которая типа особняком, и неважно, вызывается она через HTTP, JMS, AMQP или ещё как-то. Вот и не считают лишний раз об этом говорить.
>com.sun.net.httpserver.HttpServer
А, лол, я с клиентом перепутал. Да, сервер только в виде этого говна мамонта.
Спасибо, анонче, сработало
Поищи лучше готовый игровой конструктор.
Вот я допустим открываю какой то текстовый файл, и мне нужно, что бы он состоял только из букв. А если там есть цифры, то бросать исключение.
Вообще не могу сообразить, какого типа мне исключение бросать
Input, очевидно
Для тех, кто придумал проверяемые исключения, и тех, кто из использует, уже есть отдельный котёл в аду.
Не превращает ли он обычные приложения в "black box"?
Насколько глючное и занудное поделие, в сравнении с самой Java?
Облегчает ли он жизнь отдельно взятого разраба, или служит только общим целям стандартизации?
Какие модули заебись, а какие отостой?
Сколько времени объективно требуется для освоения по сравнению с, допустим, Java Core (при знании ООП, паттернов, etc)? Что сейчас можно считать признаком "знать Spring"? Уметь сляпать на нём Json-микосервис?
> Поясните за Spring! Как впечатления?
Универсальный серверный фреймворк, без него придётся писать кучу велосипедов.
> Не превращает ли он обычные приложения в "black box"?
Разбираешься в работе ApplicationContext, и всё становится понятным, никакой магии.
> Насколько глючное и занудное поделие, в сравнении с самой Java?
Ни жаба, ни спринг не "глючные", иначе бы никто их не юзал. Занудное примерно настолько же.
> Облегчает ли он жизнь отдельно взятого разраба, или служит только общим целям стандартизации?
Облегчает намного.
> Какие модули заебись, а какие отостой?
Все хороши для своих задач.
> Сколько времени объективно требуется для освоения по сравнению с, допустим, Java Core (при знании ООП, паттернов, etc)?
Основы за пару недель можно понять и уже делать небольшие приложения.
> Что сейчас можно считать признаком "знать Spring"? Уметь сляпать на нём Json-микосервис?
Да.
Ни в каких и никогда.
Их придумали из-за неверной мысли, что существуют ошибки, которые всегда можно обработать на месте. Но метод, бросающий исключения, нечего об этом знать не может, вдруг все, кто его вызывает, получают параметры извне и ничего сделать не могут, кроме как перехватить исключение и кинуть новое дальше. А раз так, зачем писать лишний try-catch? Но такое не компилируется, это тупая проверка на уровне компилятора, которая к рантайму отношения не имеет.
Спасибо за ответ.
IllegalStateException
Вычищатель, спок.
галера перепродала твою тупую жопу под видом нужного клиенту специалисту и строчит ему отчёты, а ты присутствуешь чисто для баланса лол
Любого.
Понял, спс.
Задачка выдать пачку случайных int-ов и напечатать знаки сравнения.
Крутой анализатор(tm) IntelliJ(r) начал жаловаться, сказал что знает как лучше и сломал мой код. Теперь он не печатает "равно". Хотя печатал до этого, кек. Чому так? Как теперь ему доверять с чем-то более серьезным?!
Потому что тормозная Идея говнина навозная. Поставь Eclipse.
разницы никой, подбрось монетку.
А у какого языка обновлений больше? Чтобы не было такого,что когда отучусь он уже устареет?
Ахуеть двачеры добрые,спасибо парни)
Ты как сука пишешь убил бы нахуй если бы ирл такое говно увидел
sql
Ты уверен, что класть в тернарный оператор еще один тернарный оператор это хорошая идея?
Это же даже читать тяжело.
Но если залетный щкольник сломал Идею, то она таки говно. Конструкция валидная и не сильно хуже спагетти иф-иф елс-елс.
Это миф.
Она бессмысленная. Если А уже больше Б, то А уже никак не может быть меньше Б, но он ее все равно проверяет. Нахуя. Об этом прямым текстом написано в подсказке написано.
Берёшь да смотришь на любом фриланс-сайте. Говорят, что нет нихуя. Насколько я понимаю, обычно на фрилансе что-то небольшое клепают без планов на сильное расширение проекта -- под такие задачи в гораздо большей степени подходят языки типа руби, жс, пайтона и пыхи
Андроед, но это котлин
Не беси меня
Это нужно для сайд-эффекта. Тернарный оператор для этого и оператор, помимо прочего.
Нет ты, ты обосрался, проверь трусы.
Проверяется три условия, а не два. Проверка a < b тем более никогда не будет выполнена благодаря short-circuit, если a > b было удовлетворено.
Так что щкольник тебя затролел и сломал твою Идею до кучи.
НО ИНАЧЕ, ЕСЛИ А МЕНЬШЕ Б ИЛИ РАВНО Б, И ЕСЛИ ВСЁ ЖЕ МЕНЬШЕ, ТО ДРУГОЕ.
И ТОЛЬКО ИНАЧЕ, ЕСЛИ РАВНО, ТО ТРЕТЬЕ.
Поменяй вложенное тернарное говно на что-нибудь другое, ради меня, пожалуйста. Это просто отвратительно. Если больше строчек кода -- это хуйня. Ты лишнее просто в отдельный метод выносишь, но зато всё читаемо и красиво.
> Проверка a < b тем более никогда не будет выполнена благодаря short-circuit, если a > b было удовлетворено.
Это очевидно. О чем вообще разговор
> Всегда знал, что жабофилы дегенераты, но не думал что настолько. И инструментарий у них по ходу соответствующий.
Это правда, ни один адекватный человек не будет использовать мавен или спринг
Адекватный человек будет использовать ант и JEE.
Проиграл с подливой. По логике Idea и некоторых двачеров если A > B = false, то A < B = true. А что если A >= B?! Или так в энтерпрайзе не бывает?
Comparator, только это интерфейс.
чето толстота
Похуй на быдлокод, но это ебаный стыд и понос.
Ко-ко-ко, статический анализатор, ко-ко-ко инструмент современности, IDEA, смузи, IntelliJ, макбук, петушки. Ко-ко-ко-ко! Эклипс нинужон, нотепад нинужон! Я живу активной и полноценной жизнью, со статическим анализатором мои волосы розовые и шелковистые.
А в Андроиде на джаве? Если хочется ее немного поприменять, то должны же быть простые кейсы. Ведь андроид это про гуй, гуй это асинхронность, асинхронность в джаве через многопоточку.
это для сеньоров, да и проще галеру побогаче найти
>>Sring Boot
>> Откуда View знает, в какой Controller посылать команду?
хтмл ничего не знает, он посылает туда куда написано в атрибуте action (гугли <form>) Ты его не поставил, поэтому он отправит запрос на эту же страницу. Спринговый диспетчер сервлет(гугли как работает spring mvc) перехватывает все запросы и распределяет по контроллерам в соответствии с мапингом. В твоей аннотации PostMapping тоже нет значения, поэтому он считается как "/".
>>Откуда View
вью/представление в твоем случае это хтмл, который выплюнет спринг пользователю, а от пользователя приходит реквест/запрос.
Почему в гайде этого не объяснили?
Не твой view посылает команду контроллеру, а когда нажимается кнопка отправляется http post запрос на url страницы, на которой кнопка. Собственно контроллер и слушает http запросы и отвечает на них
А чем анализатор Eclipse хуже Idea? Почему это приводят как довод? У меня сложилось впечатление что у Idea смузихлебов указательный палец к мышке прирос.
В эклипсе анализатор не интеллектуальный (intelligence). Ничего выдающегося он посоветовать не способен. Максимум опечатки исправлять за троешниками первокурами.
В эклипсе эвристика в автокомплите работает не оч, дурацкие предлагает варианты сверху, даже в контекстах, приходится несколько вариантов вниз листать.
Еще в идее автокомплит сразу подставляет переменную с именем похожим на параметр метода и может сразу все аргументы заполнить разом. Вот так то.
Ну можешь эклипс поставить, лол. Расскажешь потом, как он там аналлизирует твой код.
Eclipse очень шустрый и приятный на фоне монструозной черепахи IDEA последних лет, не в последнюю очередь благодаря нативному тулкиту рисующему GUI что под OS X, что под Win, что под GTK.
Для изучения языка, поиграться и просто академических проектов то что нужно. Чуда анализатор IDEA постоянно показывает кучу абсурдных нерелевантных ворнингов и подсказок. Это только закрепляет в тебе плохие практики, либо ты перестаешь игнорировать ворнинги вообще. Для обучения это все зло.
"Шо то хуйня, шо это хуйня."
IDEA - тормозное говно c кучей ненужных свистоперделок, Eclipse - как платформа протухшее говно.
Это тупой маркетинг, на который ты купился. Автокомплит Эклипса такой же контекстный, а вот всякие "подсказки" Идеи - абсолютно бесполезная дичь, в которой даже первокурсник не найдет никакого толку.
По задачам.
А код почему на русском не пишут на работе, ведь читать его потом русскоговорящим?
Потому что заебёшься переключать раскладку. Хотя можно и транслитом.
РеальныйПук пук = (РеальныйПук) ОдинокаяФабрикаПуков.дайЭкземпляр().создатьПук(Тип.Реальный, правда, неправда);
пук.реальноПукнутьВБудущем().потребить(здесь::слушатьПук);
Ну смотри, я начинающий программист, и выбираю между изучением с# и джавы, так какой все таки лучше?
Ну смотри, я начинающий программист, и выбираю между изучением с# и джавы, так какой все таки лучше?
Ты должен решить сам. Жаба проще, если для тебя это критерий. Но переучиться потом всё равно несложно.
Нужно протянуть эксепшн из побочного потока в основной.
Есть какие то типовые решения данной задачи?
В андроиде любой пук надо делать асинхронно. И на любой пук есть либа которая делает его асинхронно. По крайней мере сложилось такое впечатление.
Так нужно андроидеру шарить в многопоточке? Или как во фронте можно даже не знать про евеент лупу, а просто пользоваться синтаксисом языка и либ.
Андроед это другой мир. Там 95% стандартной либы переписано под архитектуру платформы. И синхронизация там своя, и асинхронность, в тонкостях который придется заново разбираться.
По ведру есть отдельный тред, если что.
Никаких подводных, почти все сразу переходят к спрингу и с чистой se не ебутся.
Сервлеты помогут понять, как эта хуйня работает изнутри, но можешь отложить до лучших времён. На jsp забей.
Пиши консольный реддит с базой в xml-файле.
Сейчас бы не перекатиться в го, когда каждая галера засыпает бесплатными курсами по нему
Перекатываться к тем, кто не вывез эксепшены с женериками и нормальными модулями?
Ну раз ты так сказал.
Котлиношизики и местные борщехлёбы советуют не юзать спринг. Но настоящие подводные не в спринге, а в котлине.
спринг пробовал начать,стало много чего непонятно,решил начать с основ
> Почему сервлеты такое говно ебучее,у меня мозг просто отторгает засовывание хтмл тегов в жаба код.
Потому что их создавали в те времена, когда это считалось нормой. Вспомнить всякие CGI на перле.
> Планирую просмотреть теорию и дальше при изучении jsf заниматься практикой. Много ли я потеряю если сделаю так.
Потеряешь время.
> спринг пробовал начать,стало много чего непонятно,решил начать с основ
"Основы" не помогут, и понятнее не станет. Лучше найти нормальную литературу по спрингу, чем тыкай мёртвый ЕЕ-стек.
Ну не знаю,я когда xml в спринге увидел охуел,прочитал про парсеры,понял в чем между ними разница,но сути все равно не понял. А тут на примере web.xml уже что-то объяснили. Да и почему потеряю время,спринг же все равно использует сервлеты, разве не лучше мне знать что и как там под капотом?
> Xml
Ты нашёл какую-то очень старую литературу. Сейчас в спринге все легко настраивается джавой и аннотациями, хотя и хмл тоже можно. Смотри spring boot сразу.
Сервлеты можешь потыкать, jsf не трогай.
Почему jsf не трогать? Это же вроде технология посовременнее чем сервлеты,да и удобнее тем что дизайн не в виде джава кода. Спринг бут я не осилю,я обычный спринг то не вывез
Я спиратил видеокурс 2017 года,чтобы визуально все увидеть,к литературе буду обращаться когда за спринг возьмусь
Jsf никому не нужен, он используется только в легаси. Молись, чтобы не попасть на древний проект, где его ещё юзают.
В буте всё сильно упрощено и сделано за тебя, его наоборот осилить легче, чем классический спринг
> никому не нужен
Дык это понятно,сервлеты тоже никому не всрались. Я спрашивал в контексте обучения и понимания что там и как работает
Спринг работает на сервлетах, но не на jsf. Сервлеты могут помочь в дальнейшем изучении, но jsf сам по себе, это примерно как учить немецкий, думая, что это поможет выучить французский.
Понял, спасибо за ответ
Спок.
Я скачал на сайте FB драйвер - Jaybird-4.0.3, добавил его вручную к проекту, далее делаю всю вот эту муть:
Class.forName("org.firebirdsql.jdbc.FBDriver");
Потом пытаюсь создать соединение:
Connection con= DriverManager.getConnection("jdbc:firebirdsql:localhost:3050/c://db/myDB.GDB", "SYSDBA","masterkey");
Но при запуске все это валится с эксепшеном:
java.sql.SQLNonTransientConnectionException: Unable to complete network request to host "localhost". [SQLState:08006, ISC error code:335544721]
Я как минимум не понимаю толком как вообще FB существует у меня на машине и как его должен драйвер найти. Я не ставил FB, специально, однако я могу смотреть указанную базу через IBExpert, и там все работает (библиотека gds32.dll лежит в windows/system32, но я не понимаю - это и есть что ли весь firebird?) Я конечно могу поставить нормально файрберд-сервер, но IBExpert же как-то обходится без этого.
Сорян, наверное я косноязычный долбоеб еще к тому же и ничего не понятно че я высрал
Зачем тебе фаербёрд? Курсач?
Насколько помню, название dll начинается на f, а та, что на g - от interbase и может не сработать.
Для фаербёрда надо ставить сервер, это тебе не sqlite. Ещё там были какие-то проблемы с версиями 3.х, надо юзать 2.х. При установке надо как-то указать путь к dll.
>Курсач?
нет, по работе надо утилитку которая будет кое-что шаманить в базе периодически.
>а та, что на g - от interbase
>Для фаербёрда надо ставить сервер
Ну, возможно. Но когда я роюсь в этой БД через IBExpert, в коннекшен-пропертиз у меня Firebird 2.5, и все прекрасно работает без всякого установленного сервера. Да и есть embedded версии какие-то для фаерберда. Я бы уже забил на попытки, если бы EBExpert не доказывал что работать с базой можно в текущей ситуации в системе
Это все равно будет выглядеть как говно, но можешь просто передавать все, но ненужные значения передавать как пустые строки, а затем проверять в контроллере if-else, возможно есть какая-нибудь либа для этого, но я не знаю
Так ты проверь работает у тебя что-нибудь на порту 3050 или нет? Какой адрес слушает процесс, который работает на порту 3050?
Может он вместо localhost слушает адрес определенный адрес, а не 0.0.0.0
Смотря на какой системе.
На винде должна помочь команда: netstat -ano | findstr :3050
Если Linux, то netstat -nlp | grep :3050
> Потом пытаюсь создать соединение:
> Connection con= DriverManager.getConnection("jdbc:firebirdsql:localhost:3050/c://db/myDB.GDB", "SYSDBA","masterkey");
> Но при запуске все это валится с эксепшеном:
> java.sql.SQLNonTransientConnectionException: Unable to complete network request to host "localhost". [SQLState:08006, ISC error code:335544721]
Теперь подумай еще раз. Куда ты подключаешься и почему появляется ошибка?
Я же сразу сказал, что толком не понимаю что делаю. Если ты знаешь в чем проблема и что нужно сделать, может просто подскажешь? Что я дебс я и так в курсе, чел
Ну то есть я понимаю, что скорее всего FB просто не работает и невозможно к нему подключиться через этот порт, потому его и нет в списке. Но что с этим сделать можно? И как IBExpert подключается? Может можно как-то заюзать тот порт через который это он делает?
Ты пытаешься создать соединение к СУБД по адресу localhost:3050.
У тебя нет процесса, который обслуживает такой адрес и порт, поэтому ты получаешь ошибку. Скорее всего, что-то с сервером. Возможно, его у тебя на машине вообще нет.
Ищи в свойствах IBExpert куда ты реально подключаешься и что за базу он открывает.
да там все что есть в конфигурации касательно FB - это указание на gds32.dll
Ну и адрес к самой БД с которой надо работать.
Тогда в начало.
Я уже разобрался, нужна code page с кириллицей.
Адрес куда указывает? Это путь в файловой системе?
Алсо, у Firebird есть возможность ковыряться в базе без серверной части. Возможно, у тебя установлена только клиентская часть.
Все же поставил этот бляцкий сервер и сразу же все в некотором роде получилось. Теперь он говорит java.sql.SQLException: unavailable database, но с этим щас поебусь и может все получится.
Спасибо, короче. Хотя что не получилось без сервера все же бесит.
Да, просто библиотека лежит в произвольном месте, прямо в каталогах самого IBExperta, да и в windows/system32 она же валяется
Все, вроде взлетело.
unavailable database было из-за того что надо перед "localhost..." двойной правый слеш (я еблан, даже в документации на их сайте этот формат четко прописан), а потом был I/O exception, потому что IBExpert занимал базу.
Мог бы еще попробовать почитать документацию драйвера и попробовать подключиться локально через строку подключения:
jdbc:firebirdsql:local:<absolute path to database>
Ну ты прикинь, как они в своём говноресте ебутся, не то что мы, соапобояре.
я так пробовал да и документацию читал, он мне писал такую ошибку:
Unable to load native client library. Check configuration of jna.library.path
как-то быстро нагуглить че делать я не смог и забил на эту ветку временно
Ну кстати, хз повлияло ли бы это, но в том пути который я добавил к
jna.library.path не было библиотеки fbclient.dll, я ее уже потом нашел и туда сунул. Может если б была то все бы получилось
Вот у меня есть монга
и 3 класса. Выглядит это говно примерно как-то так,
{поле1.класс1: значение;
поле2.класс1: [{поле1.класс2:значение;
_______________поле2.класс2:[{поле1.класс3:значение;
____________________________поле2.класс3:значение}]},
______________{поле1.класс2:значение;
______________поле2.класс2:[{поле1.класс3:значение;
____________________________поле2.класс3:значение}]}]
}
Как мне это говно правильно мапить в спринге?
какие-то связи использовать тимпа onetomane итд ?
Где про это можно прочитать с примерами мапинга и работы вложенными документами?
>неиронично пользоваться устаревшей неудобной хуйней в 2021, при этом требовать, чтоб разработчики пихали поддержку этого говна в свои продукты
Сложно на x64 перейти?
Я может че то не понимаю, но разве ты не можешь сделать модель которая бы соответствовала коллекции в монге, агрегируя другие классы, и спокойно мапить на нее?
Да он еблан, не может доку спринга открыть.
Может кто знает, есть ли способ настраивать как-то возможность подключения к уже используемой какими-то приложениями БД?
Если в ОС запущено хоть что-то, что юзает БД, то Java отказывается к ней подключаться (java.sql.SQLException: I/O error during "CreateFile (open)" operation for file...)
Однако сами приложения без проблем юзают ее одновременно.
Как пофиксить?
У меня планшет х86. В чём неудобство и сложность поддержки х86?
Двоичный логарифм от N. Время выполнения зависит от того, что за алгос. Если он выполняется за корень, то это sqrt, если за лог, то log.
Что за база? Sqlite?
Вообще судя по error during "CreateFile (open)" ты пытаешься не открыть базу, а создать новую с тем же именем что уже есть.
FireBird 2.5
Он ругается именно на попытку открыть файл базы (.GDB), типа, что он занят другой программой (IBExpert). Если ИБЭксперт гасишь, все становится норм. Это бесит. Мне надо одновременно иметь возможность там рыться, когда база подключена к другим приложениям. файл базы само собой.
Вопрос относится к настройкам FireBird. Не уверен, что тут тебе смогут помочь. Судя по всему IBExpert получает эксклюзивные права на чтение/запись.
Я бы попробовал заставить IBExpert работать не напрямую с файлами БД, а через сервер - так же как ты джавой пытаешься соединиться. Тогда движок СУБД сам будет разруливать проблемы с чтением/записью.
В РФ только у яндекса видел подобные вакансии, но там на плюсах все.
Что такое распределенные отказоустойчивыетсистемы?
Так вот, вопрос такой: почему в жаве строка такое убожество неудобное? Какой гений решил, что так будет лучше?
В питоне строка это не массив чаров, там просто туча сахара с перегрузкой операторов.
В сишке нет встроенных строк и в ней, как строкой пользуются массивом чаров, который ничего не умеет.
Строка в джаве это мощный объект с полусотней только публичных методов:
https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html
Слышь ты, младопидор, а с чего ты решил что ты можешь разевать тут свое тупое хлебало? То, как сделано, хорошо хотя бы тем, что можно юзать миллионы готовых методов работы со строками, а не ебаться всякий раз когда надо распарсить очередную хуйню согласно какой-то хуйне при условии хуиты.
Если ты такой гений у своей мамы родился, юзай буквально массив чаров, никто тебе этого не мешает.
Наоборот строки в джаве были бы куда неудобнее, если бы сделаны как массив чаров.
>>110321
>То есть для строки length()–это метод, а для массива length–не метод?
Да, все так. А в коллекциях вообще size(). Просто так исторически сложилось. Тем более, что массивы довольно низкоуровневая вещь, и их лучше никогда не использовать.
>Просто так исторически сложилось
Не, нихуя. Просто в строке приходится считать символы. Нахуя так сделано? А потому что джава
Ну да, лучше, когда латинские буквы считаются за одну, русские за две, а иероглифы вообще за четыре. И ебля с icu и велосипедением строк в каждом проекте - это никакая не ебля, а фича такая.
В 2021 работа на го или шарпе - это шитпостинг в джава-треде.
>Просто в строке приходится считать символы. Нахуя так сделано?
Считать символы, это ты что имеешь в виду?
Строки состоят из code unit, которые в свою очередь состоят из code point.
String.length() возвращает количество code units. Метод String.charAt() возвращает именно code unit, а не code point.
И это внезапно очень удобно. Не нужно думать о том, что русские символы в действительности занимают две кодовые точки, а не одну, как латинские.
> Почему в жаве строка–это не массив char, какой больной мозг придумал эту чушь?
До какой то версии это был массив чаров и на символ уходило 2 байта. Потом ввели компактные строки и символы в строках записываются в 1 байт там где от них это требуется
> Вон в сишке(Да и в пистоне) с этим никаких проблем,
С чем?
> И почему, блядь, сложно как-то договориться между собой, чтоб примерно одинаково все было? То есть для строки length()–это метод, а для массива length–не метод? Была бы строка массивом, такой хуйни бы не было.
С таким лучше сразу пиздовать на завод
> Была бы строка массивом, такой хуйни бы не было.
Строка это инкапсуляция массива символов в любом языке и ничего нового тут не придумать
> Так вот, вопрос такой: почему в жаве строка такое убожество неудобное? Какой гений решил, что так будет лучше?
Твой помпаж что ты не понимаешь базовые вещи из-за своего скудоумия или лени
Наоборот.
Code Point - это символ. Он может состоять из 1 или двух Code Unit.
Code Unit - это обычный джавовский char, который использует 2 байта и кодируется как UTF-16.
Поэтому Code Point может занимать аж 4 байта в некоторых случаях.
length() возвращает именно количество Code Unit (обычных чаров).
"".length() вернет нам 2, хотя в строке всего один Code Point.
Чтобы получить реальную длину строки, какую мы видим, нужно использовать "".codePointCount(0, "".length()). Этот метод нам вернет 1.
Методы charAt() и codePointAt() возвращают Code Unit и Code Point соответственно.
Если в строке есть хитрые символы, то нужно брать методы для работы с кодовыми точками. Если латиница/кириллица (или все что укладывается в 2 байта), то можно использовать обычные методы для работы с чарами.
Почему так уебански сделано? Исторические причины. В первых версиях юникода число символов не превышало 2^16. Вот и разработчики оставили двухбайтовый чар. Однако потом в юникод решили добавить символы чуть ли не всех нахрюков мира, включая практически неиспользуемые, поэтому в юникоде сейчас 150к символов, что сильно больше 65536.
Если бы изначально чар сделали 32 битным, то никаких проблем бы не было, уместились бы все символы с огромным запасом, но всем было похуй, как мне кажется.
Блядь, юникодовские симолы сожрала макаба.
В общем, советую не ебать этой темой мозг, на собеседованиях такое у меня ни разу не спрашивали ибо это самое настоящее дрочево. Вряд ли кто-то в энтерпрайзе будет вставлять смайлики в текст или писать на языках каких-то вымерших африканских племен
> Если бы изначально чар сделали 32 битным
То OutOfMemory на пекарнях тех времен. Даже в VisualVM если смотреть на состав кучи, там строки сжирают больше всех памяти. Не нужны они такими жирными.
>FireBird 2.5
Он умеет работать как в серверном режиме, так и файловом. У тебя точно сервер FireBird запущен? проверь в процессах
Пока URL.
Запущен точно, ибо пока я не установил его и не запустил - ничего не стартовало (на Джаве). В URL коннекшена стоит локалхост:3050.
Сторонние приложухи (я юзаю две) обе работали и без сервера, просто указываешь им путь к файлу БД и все.
Олсо, картина изменилась: теперь у меня Джава не конфликтует с IBExpert-ом, но зато еще одна левая приложуха блокирует и Джаву, и IBExpert. Может это потому что у меня там древний 32-битный ФБ установлен на 64-битную венду, и что-нибудь там с моделью параллельного доступа к файлу сломалось, я не ебу как все это работает. Позже поставлю 64 бит на пробу.
Серверу пофиг сколько коннектов к нему открыто, хоть 0, хоть 100. Никто друг другу мешать не должен.
>но зато еще одна левая приложуха блокирует и Джаву, и IBExpert
Скорее всего приложуха работает с базой как с файлом и лочит его, соответственно сервер уже не может открыть базу надо смотреть логи сервера, на предмет ошибок.
Да обе приложухи работают с БД без всякого сервера, причем сначала они друг другу не мешали, а теперь почему-то мешают (причем ошибка во всех случаях звучит в точности одинаково, только иногда ее джава мне высирает в эксепшене, а иногда в окошке ИБЭксперт). ИБЭксперту надо только путь к файлу базы указать, и к библиотеке gds32.dll
>>калькулятор
онлайн калькулятор ипотеки с параметрами: срок, начальная сумма, ставка от банков (все или на выбор - данные подтягиваются с апи банков и кешируются), может доп условия какие то льготные
>>ежедневник
корпоративная система учета проектов/задач на несколько пользователей с авторизацией и распределением по ролям, поиск и фильтрация задач по параметрам, рест апи, можно фронт на жс сверху прикрутить с графиками, берндаун чартами и тп.
>>что там еще ?
соглашусь с >>110320
работу найди, сам ты ничего сложного не напишешь
Возможно раньше они в ридонли режиме подключались.
В любом случае - просто подключайся к серверу и все.
И мы всей семьей счастливо отъебали тебя в сраку
Может реально свитчнуться в го/ноду, пока не поздно?
Только быстро. Поезд уходит..
Ради интереса находил какой-то сайт с вакансиями в штатах (не линкедин), там на EE почти нихуя не было, сплошной спринг.
Какие в вакансиях пишут - такие и нужно. А вообще востребованность измеряется на библиотеками.
Да.
Только Spring, он включает в себя все 100500 самых важных библиотек.
Вызываю, а там время на минуты отличается от системного в винде, да и фактического в реальности
На практике нет.
Jakarta EE это современная версия, тот же Спринг, но чуть попропще, поменьше магии. Спринг тоже частично реализует Jakarta EE спецификацию.
Я КАРТА Я КАРТА
> чуть попропще, поменьше магии
Зато призодится ставить сервер приложений, без которого надо собирать руками конструктор из tomcat, openejb, weld, jersey, hibernate и прочего.
Просто скачай Jakarta Boot
А какие есть сервера приложений, поддерживающих 11 жабу и jakarta 8? Вроде WildFly только живой, а остальные сдохли, либо до сих пор выше 8 жабы не смогли обновиться.
Из популярного - да, только wildfly. Даже эталонный glassfish на 11 не стартует.
WebLogic 14c должен поддерживать 11 жабу и jakarta 8.
GlassFish больше не поддерживается Oracle, вместо него выпущен Payara, он тоже поддерживает 11 жабу.
Пусть лучше ничего не перекатывается. Преимуществ перед спрингом никаких, а недостатков горы.
>Название у нее какое то неприятное.
Молод ты, и не познал истинную мудрость апачей.
>>111937
>Зато призодится ставить сервер приложений, без которого надо собирать руками конструктор из tomcat, openejb, weld, jersey, hibernate и прочего.
А то, что у тебя в спринг бут по умолчанию томкат, хибер и куча прочего завернуто, тебя не смущает? Сейчас спринг это такой же сервер приложений. Они начинали с легковесной альтернативый J2EE, а в результате сами стали такими же.
Ну, сейчас везде монолиты пилят на микросервисы. Но я бы не считал это новым проектом. И бут тоже по сути является всего лишь абстракцией над уже существующими инструментами.
А что конкретно нового пишут на жабе? Ну вот чтобы в конторе взяли и решили писать полностью новый проект на жабе. Такое вообще бывает сейчас?
Что еще есть из нового? Нода? Питон? Не уверен насчет них.
Чет несостыковочка какая-то: эпоха для джавы умирает, но в тоже время замены ей нет, ты или крестик сними, или трусы одень.
А если ты имел ввиду, что конкурентов, мол, нет и поэтому будет деградировать, то можно вспомнить тот же шарп, чем тебе не конкурент
Я не про распиливание монолита на микросервисы, а про написание проекта на них с нуля. Да, кто-то считает, что это хуёво, но в реальности это очень широко практикуется, и никаких проблем нет. Что конкретного? Да всё, что можно, то и пилят. Ты же не можешь ответить "в общем", что именно пилят на го или ноде, вот и в жабе ситуация ровно такая же.
>>112186
Ты вообще хоть раз открывал вакансии и сравнивал с другими языками, или откуда у тебя такая уверенность, что эпоха жабы заканчивается?
А ещё там не надо собирать еарник, настраивать отдельную софтину, занимающую полгигабайта места и жрущую память, и деплоить еарник туда.
Зачем, если есть контейнеры?
Проходил собес на ждуна. Обосрался на этапе по алгоритмам, причем ничего сложного нет, просто не готовился нихуя
А, то есть до собеседований с командами ты так и не дошел? Просто интересно, где там вообще джава нужна, кроме очевидного маркета. В вакансиях на их сайте указано, что джава вроде есть, а вроде все на плюсах/го пишут.
>Java EE 6
>IBM WebSphere Application Server
>MS / Oracle SQL
>Опыт коммерческой разработки на JAVA от 5-ти лет
>Координация работы ИТ-специалистов в команде, ИТ контроль выполнения задач разработчиками
Как думаете, сколько такой легаси тимлид будет стоить? И вообще, в банках везде такое засилие технологий 10 летней давности?
Грейд так 11, у нас им 200-300 платят на таком же стеке, но в другом подразделении.
200+
Ну может дашь какой-нибудь проект к свой посмотреть? Ну из тех, что не стыдно показать в резюме при поиске работы.
Один из вариантов, как это сделано у нас — хранение в файле KeePass.
Могут ли возникнуть проблемы при устройстве к основным джава работодателям - банкам и прочему энтерпрайзу? Слышал всякие истории про полиграф и про то, как СБ иногда давал негативное решение просто потому что у человека есть ипотека.
Я свои проекты перестал писать почти сразу, как устроился работать в 2013 году. Когда ты весь день сидишь перед компом в этой ебучей IDE, то приходя домой, меньшее, что тебе хочется — садиться за комп, не говоря уже о пет-проектах. Я и в игори не играю дома. Зато с пацанами в сракбол — самое оно.
А вообще я тебе вот что скажу. За свои восемь лет я уже повидал индустрию и видел лютых говнокодеров, которых руководство очень ценило, ибо они быстро решали поставленные задачи. А баги? Да хуй с ними, найдут — починим.
Видел я и всяких перфекционистов, которые вылизывали и вычёсывали свой код, архитектуру планировали, паттерны-хуяттерны, и регулярно получали пиздов от боссов из-за проёбанных сроков.
Так что анон, мой тебе совет: забей хуй на эту пресловутую "профессиональность". Твоя цель: научиться как можно быстрее решать поставленные задачи. Насколько это будет по-говнокодски — дело десятое.
Если хочешь порешать более-менее норм задач, без всякого говна для даунов, держи: https://t.me/javabooksarchive/388
И вообще, не жабой единой ценен погромист. Освой linux, научись локалку поднимать из виртуалбоксов со всякими локальными днс-серверами, шлюзом с проксёй и впн-сервером, облако какое-нибудь освой (AWS или Google Cloud там), и будешь норм пасаном.
В сочетании со стандартными геттерами и сеттерами, приходится создавать переменную List<String> listToSort = someObject.getList(), вызывать listToSort.sort() и класть обратно someObject.setList(listToSort).
Или то что я хочу это антипаттерн и так сделано специально?
Обобщить это можно, написав метод из трёх строчек, который будет клонировать переданный объект, передавать его в переданный метод и возвращать склонированный объект после изменения. Проблема в самом клонировании, изнутри метода невозможно определить, нужно ли глубокое копирование, или достаточно взять ссылки из полей, из-за этого не рекомендуют юзать clone().
Напиши сам.
Ну все таки хочется просто не делать совсем нубских ошибок.
У тебя странный взгляд на вещи. Вот есть контора, в ней работают программисты, они пишут на Яве. На каком языке они будут пилить новый проект? Наверное на го, да?
Ну чел специально для таких как ты и я придумали стримы и теперь декларативщину можно превратить в приятную функциональщину по типу
list.stream().sorted().collect(Collectors.toList())
Ну тащем то Го и Раст при должном использовании вполне могут отхватить часть рынка жабы/шарпа. Писать на языках с VM стало не круто, во многом благодаря склонности этих языков к накапливанию легаси. Вон, скажи любому толковому разрабу, хочет ли он поддерживать древнее говнище на IBM WebSphere и Java 8. Ну или говнище чуть новее, на 3-4 спринге с кучей XML конфигов, и возможно, на 11 жабе, когда уже будет 17 или 23 LTS.
Джава и JVM отличные платформы, но вот сам энтерпрайз делает всю разработку настолько каличной, что порой хочется выкатиться куда-нибудь в молодежный го или жс.
Вы видите копию треда, сохраненную 31 июля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.