Это копия, сохраненная 8 апреля 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
>2) Результат зачем-то проверяется на объект-константу (типа как Integer.MAX_VALUE - это паблик статик файнал объект), хотя достаточно было бы возвращать null
NO WAI!
https://youtu.be/QwycPnpp6uQ
Развели процедурщину в объектно-ориентированном языке. Бог дал им эксепшены, нет, будем прокидывать ошибки и сравнивать их коды. Так и до голанга какого-нибудь недалеко.
мне поебать
Я зелёный, поэтому отвечу, что никогда, я уяснил на лабах в институте, что в хеш-таблицах такого вида всегда список, и ни про какие деревья там речи не было.
работаю джавистом больше года в одном банке
Чего только не придумают. Хочу хеш-таблицу, в которой вместо списков тоже хеш-таблицы.
Чтобы победить магию автоконфигурации.
Можно и от ебучих аннотаций избавиться, написать xml-конфиги.
Магия плоха просто в силу того, что она магия. Она почти непооддерживаемая, и никогда не знаешь, когда и где может выстрелить.
>Магия плоха просто в силу того, что она магия
В спринге нет магии. Если ты не понимаешь, как работает автоконфигурация и аннотации, то ты тупой.
Автоконфигурация и есть магия. После запуска бута контекст засран сотней невесть откуда взявшихся бинов мутного предназначения, и без чтения про каждый хуй пойми, как оно там работает по умолчанию. Ну уж нет, лучше всё руками делать.
>Автоконфигурация и есть магия.
В спринге нет магии. Если ты не понимаешь, как работает автоконфигурация и аннотации, то ты тупой.
А есть у джавы готовый шаблон MVC как у .NET? Просто у C# .NET можно создать готовый сайт с настроенным рест апи и интерфейсом. Есть что такое на джаве, может фремворк какой или что? СОС
Мда
Spring MVC очевидно. Трудно сказать как шарпе он или нет, шарпом не пользовался. Но веб сайт хэлоу ворлд склепать можно за пару минут.
Если у тебя не ультимей - инициалайзера встроенного нет - воспользуйся внешним https://start.spring.io/
Можно сразу накидать нужные зависимости, спринг сам все сделает.
Скачаешь архив заготовки проекта - откроешь в идее и работай дальше.
Если изучать как работает магия под капотом, то безусловно станет понятнее. Вот только магия от этого не перестанет быть магией.
Если фокусник объяснит, как он вытащил тебя из пизды мамаши именно ту самую карту из колоды, то его магия не перестает быть магией?
Так это что угодно, что требует больше 1 минуты на построение последовательности действий, назвать магией. Хватит лениться и иди разбираться.
Прелесть исходников спринга в том что разбираясь в них ты хорошо поймешь как работает АОП и как работает рефликсия, потому что это основа на которой лежит спринг, если же данные темы у тебя вызывают вопросы или читая исходники ты не знаешь что делает условный .getClassLoader то возможно стоит вернутся к изучению javaCore
Мы не анимешники.
>в идея коммьюнити
>подключить JDBC драйвер
Лучше устройся кассиром или грузчиком. Программирование тебе не по зубам.
рутреккер в помощь если ты не разработчик, Который следит за версиями идеи, то скачай какую нибудь 16-18 года к ним как раз ключей куча в интернете
Есть сторонний плагин database navigator, но с ораклом он у меня работал криао (>>1779035 →) хотя может с мусклом будет норм.
При чём тут вообще исходники спринга? Каждый раз в них лезть что ли, когда что-то непонятно? А кор - это основа, и вопросов к ней быть не может.
Ваше мнение очень важно для нас. Пожалуйста, оставайтесь на линии...
С плагином Database Navigator всё заработало, класс:3
Ну да каждый раз лезть, а как ты вообще что то учишь? базовое знание возможных методов, без изучения реализации это уровень джунов - мидлов. Или ты всегда в гугл за ответами лезешь?
помянем молодого
>но удовольствия они мне не доставляют точно.
Это значит, что ты не хочешь думать в принципе. Твой удел - формошлепство по шаблонам.
По-твоему, думать нужно только в алгоритмизации и математике?
Чем старше тред, тем опхуй моложе.
> алгоритмов
Надо знать. Не то чтобы каждый день придётся с этим сталкиваться, но понимание алгоритмов/структур данных может иногда выручить.
> математики
Этот вопрос пора добавлять в шапку. В обычном бекенде максимум будет арифметика или простейшая статистика.
>В обычном бекенде
А какой еще бекенд есть? без иронии говорю, просто сам не специалист в этой области
Это я так назвал бекенд "в самом общем случае".
Ну, в теории может быть что угодно, какой-нибудь специфический бекенд со сложными научными расчётами . Но такое обычно пишут не на джаве, а если и пишут, то расчёты отделяют от бекенда. В общем, не бери в голову, с таким вряд ли столкнёшься.
Даже работая ждуном мне приходится вертеть хешмапы со значениями из хешмап делая выборки из разных таблиц, работа с бд напоминает sql-ex на харде, блок схемы что в экран не влезают уже никого не удивляют, между stream() и collect(toList()); может быть не один десяток строк. Использую лямды чаще чем ругаюсь матом, хотя совсем недавно я не мог простейшую flatmap функцию сам написать. И всё это надо делать быстро, чтобы понять куда пропали данные с фронта прежде чем на это обратят внимание и исправить свой косяк. И работать оно разумеется должно тоже быстро.
Если ты асимптотическую сложность сраного квиксорта запомнить не можешь - лучше даже не пытайся. Хотя может где и есть места, где надо поля раз в месяц переименовать, не знаю.
Бля как страшно, а я только спрингбут прожевал
Пилю лабы по джаве. В заданиях малоадекватная для современного JUnit хуета вроде Создать класс для методов тестирования, производный от класса основной программы и Создать объекты классов программы и тестирования в функции main(), хотя в гугле и даже в методичках нихуя не от чего не производно я так понимаю это значит наследовать основной класс в тестовом, блядь, везде отдельный тестокласс с @Test аннотациями и запуск тестов из него отдельно, а не из основной программы, как оно собстна и должно быть.
Так вот. На похуй пишу по-правильному, препод скорее всего и так примет если конечный результат будет как в задании, но вот теперь задача состоит в том чтобы собрать в новом пакете новой лабы предыдущие из прошлых лаб и запустить все тесты из всех лаб одновременно. Я пилю проекты руками из консолечки мавеном, пишу и запускаю в вскоде с джава-расширениями. Кое-как нагуглил как собрать предыдущие пакеты в джарники и подключить их в новый, и даже как соединить все тестоклассы в один, но теперь проблема в том, что из этих джарников только основные классы импортятся, а тестовые - хуй. Как сделать чтобы можно было? Или что делать-то теперь, бочку?
я начал учить Java
уже три дня усиленно вздыхаю над ней.
либо я тупой, либо уже просто задеревенел за 30лвлов (тож =тупой).
чет трудно дается некоторые вещи, начиная с банальных пониманий основ ООП, как организуются классы, как ссылки с классов на классы/преременные мутить. ну и другое
подскажите какие-то мб каналы ютуб или книгу где разжевывают для тупых основы
то ли успокоил меня, то ли нет)
тем не менее, есть какие-то курсы где понятно объясняют основы?
множество курсов, которые я успел пролистать - там будто уже для знающих рассказывают.
мб для учивших другие языки. а мне бы для тупого
Тебе не основы джава надо учить, а основы программирования и ООП тогда.
Максимум ССЗБ, нарочно до такой хуйни и не додуматься.
Решил с нуля без кора вкатиться в андроид, так ещё и сразу в котлин, но не осилил Боже, я наконец-то понял, откуда в котлин-треде столько тех, кто ничего другого не учил. Скачал философию джавы, нихуя не понял, решил сначала выучить C, причём сразу по K&R. Опять нихуя не понял, решил учить Computer Science по каким-то мутным книгам и курсам.
> Начинаю осознавать, что для полной картины понимания Computer Science, мне необходимо будет заново учить алгебру, а затем и ВысшМат
Ну это просто эпик.
Да, Controller - точки входа; Service - бизнес-логика, Repository - доступ к БД, ещё есть Component - всё предыдущее является компонентами.
Корзина должна быть в правом нижнем углу.
Ещё я бы убрал идею с панели задач, легко на неё случйно кликнуть, а затем ждать, пока запустится, чтобы закрыть. Ну и добавил бы туда git-bash рядом с cmd.
Хорошая идея, анончик.
Всё по-линуксовски. /c/Users/anonsdvacha/Desktop
Я это к тому писал, что при гуглинге на эту тему, везде говорили о том, что гитбаш вроде как умеет разворачивать слешики.
В WSL слышал докер не пашет, хотя сам не пробовал. Ну и это всё-таки линукс со своим собственным окружением, когда гит баш - это более удобная замена командной строке.
Он и разворачивает, преобразуя налету пути винды в пути unix, и наоборот. Правда, иногда это вызывает проблемы.
WSL уже две версии есть. Во второй докер точно работает. Но даже первая включается из обычной cmd при вызове bash.
Тогда я что-то не так делаю, пойду разбираться.
Последний раз, когда читал про вторую, она была бетой, и ждал, когда выйдет нормальная.
Нян кот там же отдельно находится
чего тебе пригорает то?
Да вроде норм.
довольно доходчиво.
есть ли еще где объяснения подобного характера?
https://youtu.be/T_hrGXkD934
>есть ли еще где объяснения подобного характера?
А тебе одного мало? С первого раза не понял?
Блин это же наоборот все усложняет, понимание ооп, мне кажется, приходит со временем, типо по началу можно писать код просто в один большой мето тоесть писать в процедурном стиле как деды делали, а потом уже будет легче понять ооп главное в js не иди а то там то вообще хаос
Кстати вот согласен, полгода назад первый раз сел за программирование и когда впервые столкнулся с ооп вот эта вся дрочь с "взято из реальной жизни" очень запутывала и отвращала. А когда почитал примеры кода - стало немного понятнее. Особенно, когда прочитал про первые несколько паттернов(фабрики, шаблонный метод) и решил по ним задачу.
Хотя пока задачки мелкие процедурный удобнее и ооп нужно в 10% случаев.
Но может все вот эти философские моменты и не до конца вкурил и определения инкапсуляции и полиморфизма из головы вылетели сразу. Зачем эти философские штуки вообще нужны?
Скажем так сокрытие реализации, наследование и.т.д. это просто признак хорошего тона при написании классов, условно если ты будешь делать все методы паблик никто не умрет же, но есть условности при которых прайват методы считаются методами для обработки внутри класса, вообще имхо лучше не ооп читать а солид, там все как то более точно описано
До солида дойду, как с джавакором разберусь. А со всеми овер20 паттернами из этих: https://refactoring.guru/ru/design-patterns/catalog не надо разбираться?
Мое мнение по поводу паттернов, они 100% не панацея, и использовать их постоянно ведет к говно-коду, потому что все паттерны кроме некоторых типо фабрики и сингелтона написаны сразу для максимальной масштабируемости, но в 90% случаев эта масштабируемость не нужна от слова совсем. в крации если получаешь кайф от разборов примеров то почему не поизучать
Ожидающий тред это тред которого насильно заставили ждать через .wait, блокированный это тот который долбится в блок synchronized или метод с аналогичной сигнатурой
Проблема в том, что в этом — сама суть Java: язык, в котором на разработчика надевают смирительную рубашку, так что даже человек без опыта, изучивший Java на двухнедельных курсах может что-то писать по данному ему техзаданию.
Kotlin в эту нишу не вписывается от слова «совсем»… с чем разработчикам, долго работавшим на Java, тяжело смириться.
P.S. Собственно если вы посмотрите на историю развития Java — то это постоянная борьба между людьми, которые хотят новые фичи, так как это позволяет писать более читабельный код — и людьми, которые пытаются их не допустить, потому что они также позволяют читать менее читабельный код…
Смирительнорубашечники на месте?
Значит у тебя тупо мотивации нет, иди сделай то, к чему лежит душа кроме кудахтера, дрочки и пожрать, а потом возвращайся.
Прочел все в ленивом темпе за выходные, для общего понимания пойдет. Один хер все лепится в темплейт-формате.
Толсто.
Почему ты сравниваешь формат для конфигов и формат для сериализации данных? Ты бы ещё сравнил html и json.
В том, что нет никакого смысла везде тащить функциональность, которую никто не будет использовать. Хоть и надмножество, применяются они для совсем разных задач. Тебя ведь не удивляет, что нигде из коробки не поддерживается XQuery, а только его подмножество XPath. Потому что всё равно никто бы не пользовался.
Но тут ведь как раз есть смысл тащить его, потому что при сериализации и передаче по сети не нужно будет добавлять двойные кавычки везде.
Для тех, кого реально беспокоит количество передаваемых байтов, придумали бинарные форматы. А экономия на кавычках почти никакого прироста не даст.
а ну да)
Решил я всё-таки попробовать WSL2 с докером, полёт нормальный. Можно теперь обойтись без всяких уебанских winpty. Держу в курсе.
Двачую, охуенно
Логика такова, что вход на сайтик осуществляется через вход под именем юзера, либо сервиса, либо адиинистратора.
Юзер может создать заявку, в ней указано имя, дата создания, фото и комментарий.
Сервис может менять статус с "в ожидании" на "в исполнении" и "выполнено".
Администратор видит все поля.
При смене статуса на почту юзера и администратора приходит уведомление о статусе и времени.
Поля заявки:
имя, адрес, время создание, время отклика на заявку, время исполнения, имя сервиса, комментарий, фото.
Выполнил фронт часть и сделал в sql таблицу заявок и таблицу пользователей. Я нихуя не программист, по этому прошу помось вас. Что гуглить?
Собираю проект в градле, юзаю спринг, из сделанного есть только работающий код, загружающий заявку из хтмл в sql табличку, но без имени пользователя.
Это мне не в борланде формочки лепить..
Spring Secure для логина и доступов можешь использовать.
И посмотри гайдов простейших для работы со спринг бутом.
http://zetcode.com/springboot/postgresql/
https://www.youtube.com/watch?v=jH17YkBTpI4
А расскажи нам про С++, как на нем здорово писать, что аж препроцесор для ошибок люди пишут.
https://vittorioromeo.info/index/blog/2016_camomilla_released.html
Загугли Thymeleaf spring, или mustache spring. Если хочешь что бы формочки, кнопки красивые были то есть простой js фреймворк bootstrap
учу java уже четыре дня и голова пухнет.
научите меня заполнять массивы вводом с клавиатуры.
например, есть 2 класса: first и second.
в первый вводятся с клавы 2 значения последовательно.
наприме имя и возраст. 5 человек, например.
в классе first есть переменные name и age.
могу ли я сделать так, чтобы у меня был объект chelovek c параметрами name, age. и потом подставлять их в другой класс в массив?
ну или подскажите где почитать про это.
И для такого используется ArrayList, создание каждый раз нового, как сверху дико неоптимально.
Посмотрел ролик Немчинского людям, которые только начинают работать в сфере, он категорически противопоказан. Иначе получим повсюду возвращение условного EmptyComponent, из базы когда этого компонента там нет от слова совсем и кучу find методов хотя они норм, но не каждый чих же
Прошу помощи.
В этом семестре, в универе у нас изучение джавы. Дали задание, но про сам язык ничего не объяснили.
С чего начать, чтоб быстро и эффективно войти в курс дела? Книга/курс/сайт? Джава программистом не собираюсь становится, просто надо понять базу языка.
https://metanit.com/java/tutorial/
Самый понятный из коротких туториалов, что я встречал на русском. Но мне не хватило практики и некоторые моменты без задачек я не понял. Задачки на https://hyperskill.org, но там сейчас регистрация по рефералкам, а с января будет платный.
Их можно использовать в стейтфул бинах. Но учитывая принятую повсеместно в джаве анемичную модель, можешь о таких скоупах забыть.
>prototype
Вообще в ЖЕПе по DI такой скоуп был как бы дефолтным. Но в спринге сделали лучше. А зачем он - хуй знает.
>request
Хранить токен пользователя, например.
>session
Хранить параметры сессии.
Блядь, я думал хотя бы 16.
Java. Библиотека профессионала. 11 издание Кей Хорстманн + https://hyperskill.org + иногда https://metanit.com/java/tutorial/
Я два месяца пообтирался на гиперсреньке, 140 топиков жопы, ессеншлы и прочие интересности выдрочил. Потом сделал 9 проектов, смотрю, а все остальные это какое-то дрочево массивов.
>массивы в 2020
Думаю, куда дальше перекатиться.
А кто нибудь в курсе, как они в LTS поддерживают фичи который в preview state? Как есть в моменты выхода или апгрейдят на финальную версию?
- Как реализовать DI-контейнер?
Вы не должны показаться сбившимся с темпа поплывшим васяном, у вас 30 секунд на размышление и 5 минут на разъяснение.
Ваш ответ?
Ты ебанутый? Нахуя велосипед переизобретать?
Если бы я делал по-тупому, создал бы класс со свалкой статик-полей и synchronized геттерами-сеттерами. А так, наверное, была бы только одна мапа<Class, Object> и пачка методов для инициализации и поиска.
Вроде норм ресурс, но мне чот не охота в такую делюгу рога макать
На гиперскилле всё вроде норм разжёвывается
Или то ресурсов у меня нормальных для изучения не было?
там вроде если ты что-то быстро делаешь, то фри триал до 3х месяцев продляется, а за 3 месяца можно этот гиперскилл весь пройти и проекты все сделать
Есть два множества (Set) объектов, хотя фактически может быть хоть массив в реализации так-как множества приходят по сети уже готовыми. Допустим А и Б.
Нужно найти в первый результат одновременно все элементы которые есть только в А но отсутсвуют в Б. И второй результат только элементы из Б но без А.
Да в готовой библиотеки есть готовый метод. Но в своей базовой реализации он медленный. И его нужно вызвать дважды, а мне желательно за один проход все сделать.
В том то и дело, что я попроходил и ебловал
А потом когда вошёл во вкус, так сказать, уже поздновато, блять
Теперь чую, мне только хуи во вкус будут входить, блять
>за один проход все сделать
как-то так можно, наверно. на жабу сам перепишешь, на ней всё так же будет +-
Без понятия, я осилил 170 и 8 проектов. Думаю еще 100 осилить и еще 10 проектов до нового года, потом наверно пойду учить андроид.
Осталось очень много важного - многопоточность, лямбды, стримы, базы данных, спринг бут, паттерны.
Для меня гиперскилз это кроме задачек еще и в первую очередь тренировка английского, там очень примитивный язык, а у меня инглиш был околонулевой. Ну и я задачек по темам с автотестами не видел лучше.
Делаем свою анотацию прихреначиваем её к полю, во время старта приложения мониторим все объекты на наличие этой антации, собираем все объекты в одну кучу и вызываем, их конструктор через рефликсию а ещё лучше через классы cglib, так как так быстрее, после создания экземпляра класса смотрим нет ли у него требующихся для заполнения полей, заполняем через рефликсию, если есть, готово. Спринг делает так же? а ну простите, я тупой
Set<Integer> intersection = new HashSet<>(s1);
intersection .retainAll(s2);
s1.removeAll(intersection);
s2.removeAll(intersection);
Вот решение, не знаю о каких двойних проходах идет речь
>>- Как реализовать DI-контейнер?
Это ж просто хешмапа с наворотами. HashMap<Class, Object>. В спринге просто сделали вместо обжекта специальбный контейнер - бин, чтоб метаинфу хранить. Можно тож сделать, если хочется.
> порядок инициализации
О каждом бине хранился бы где-нибудь список его зависимостей, например, List<Class> в самом классе бина. Ну и при запуске бежим по ним, смотрим, проинициализировано ли, и если нет, рекурсиано обходим зависимости и инициализируем.
> циклические зависимости
Разве что ленивая инициализация, инициализировать не при запуске контейнера, а при попытке непосредственного обращения к бинам из других бинов.
циклическая зависимость делается через прокси классы, которые если отбросить все сложности, в данном случае, просто лейзи объекты
я гоняю 2 цикла в том примере, intersection просто для красоты, можно делать вот так:
Set<Integer> buff= new HashSet<>(s1);
s1.removeAll(s2);
s2.removeAll(buff);
Нам в любом случае придется проверить и s1 и s2, так как задача так поставлена
Не ты прав меня чет контузило походу
Бля какая ебля с этой хуйней, пиздец. Решил попробовать покодить на Джаваскрипте, скачал ебучий еклипс, и мне просто не дает писать. Сука, ну че за хуйня?
Сделал примерно как на пикрелейтеде по статье https://vladmihalcea.com/the-best-way-to-do-batch-processing-with-jpa-and-hibernate/
Однако сто тысяч записей вставляются почти 2 минуты. Так и должно быть разве? Это ж медленно пиздец, не?
>Однако сто тысяч записей вставляются почти 2 минуты. Так и должно быть разве? Это ж медленно пиздец, не?
Вовсе нет, не очень быстро, но и не медленно что пиздец. Если хочешь напиши на чистом JDBC и PreparedStatement.addBatch() и посмотри время там.
В целом там много параметров:
1. Какие запросы генерит хибер, батчовые ли они.
2. Размеры вставляемых данных - чем меньше тем лучше.
3. Какие на таблице индексы/констрейны/триггеры - все это конечно тормозит вставку.
4. Надо подобрать оптимальный размер батча.
5. Оптимизация самого постгреса.
Спасибо, уже нашел проблему. Оказывается, для Postgres нужно обязательно ставить reWriteBatchedInserts=true, иначе JDBC-драйвер всё равно будет использовать отдельные инсерты. 2 минуты уменьшились до 20 секунд.
Ну, чисто технически, под капотом ArrayList при превышении capacity происходит то что ты написал. Нахуя я это пишу, ведь ты хотел написать ему как проще
Несколько советов тебе:
1. Пик2 - Убери сканнер из конструктора. Если тебе понадобится создать экземпляр класса то этот сканнер тебя заебёт. Лучше новый метод написать аля fillWithScanner().
2. Для каждого свойства писать отдельные геттеры & сеттеры. Ну это ты и без меня знаешь.
А вообще, анон выше задачу хуёво объяснил, сотюда все вытекающие.
Мне нужен был сайт со стуктурированным учебным планом, чтобы я основы понял и задачки порешал. Клон двача изволь сам делать.
Спринг топ.
Ну а хули нам, разработчикам... Влом по ResultSet'у пробежаться?
Экзамен не сдавал, но луркал много по этой теме. Малоэффективно с точки зрения профессиональной прокачки, чуть более эффективно при поиске работы, но основное применение этого экзамена — когда галера может тебя подороже продать заказчику как сертифицированного java-разработчика. Что сказывается на твоей зп, вот тебе и окупаемость. Кстати, называются теперь Java Programmer I и II.
>>808388
Кстати, с октября этого года экзамен для 11 джавы останется только 1, старые два будут неактуальны. В новом экзамене 90 вопросов, стоит 225 баксов, не мало, но дешевле чем два по 150. Для восьмерки схема сертификации остается прежней.
Само наличие сертификата конечно мало чем поможет, хотя в каких то гос подрядчиках может повысить твою ценность (в тендерах бывают указывают требования наличие в команде OCP - это полная хрень с объективной точки зрения, но что уж поделаешь, российская бюрократия). Но подготовка имеет все же смысл, будешь знать какие-то тонкости, прокачаешься в новых api, там же и на многопоточку есть вопросы (хотя и простые). В некоторых конторах все еще имеют место быть паззлеры и бреинтизеры - как раз тренировка.
Короче, если есть 225 баксов, время на подготовку и пока не видишь свою карьеру в будущем - почему бы и нет? Хотя понятно что это и не замена боевому опыту
Junit мне кажется стандартнее.
Нахуй тебе эклипс чтобы покодить на джаваскрипте? Открываешь браузер, f12, и кодируй сколько влезет в консоли
ппп-п-пук подсказки ИДЕ
Это как рассуждать, зачем нужны IDE, если есть вим/нотепад++/сублиме.
Макакаскриптеры теперь тоже любят размазывать логику, и навигация по коду без помощи IDE там пиздец.
Привет, я ждал тебя.
Плюсов не так много, но они есть:
1) Пока готовишься, пробегаешься по всему языку, что не может не сказаться положительно на твоем опыте
2) Можно на hh поставить охуенную плашку с сертификатом и бантиком, выглядит стильно, модно, hr'ы говорят "молодца" (серьезно, на это сильно прям клюют - количество предложений увеличилось в 2 раза, у меня правда бэк сеньеровский был, а для джуна может и не прокнуть)
3) Неплохо апает самооценку, типа "нихуя, я и так могу?" и можно потом на дваче хвастаться. Но тут аккуратнее - если с первого раза не затащишь, то словишь дизмораль.
Вообще экз достаточно сложный, в плане того что надо думать очень быстро, практически интуитивно. Первым делом смотришь, есть ли в ответах вариант "не компилится", и если нет, то очень быстренько чекаешь логику и идешь дальше, а если есть то ты попал, нужно внимательно читать код, ища ошибку. По правде сказать, по книжкам складывалось впечатление, что будут наебывать часто и много по ошибкам компиляции, а на деле все очень благоразумно - чекать парные скобки или запятые не приходится, все методы названы правильно (т.е. не будет такого что у коллекций .length() вызывают), все ошибки компиляции что есть это в основном из-за сигнатур методов, и из-за принадлежности метода к конкретному классу. Вопросов с "компиляцией" где-то 50%, может даже меньше. По времени расклад такой: первые час-полтора делаешь медленно и аккуратно ~30% вопросов, изучаешь систему, помечаешь некоторые вопросики для ревью позже. Далее охуеваешь с того что у тебя остался всего час, а вопросов еще больше половины, открывается второе дыхание, отбрасываешь неуверенность и начинаешь ебашить, ничего более не помечая. Как то-так.
Ага, с восприятием английского проблем нет, да и нормально там все рассказывается
Есть конечно ебанутые задания, но они редки
А чтобы учить всякое дальше, чем на перво акке, придется ли предыдущее перепроходить?
Там все скипнуть можно. То что прошел на первом - скипаешь и играешь дальше.
Пишу:
var input = System.`in`.readAllBytes()
System.out.writeBytes(input)
System.out.flush()
Ожидаю, что на выходе будет то же, что и на входе, но нет, получаю какую-то байтокашу.
Тебе рефералку дать что ли? Там еще +3 месяца будет. К январю весь сайт можно выдрочить.
вот тут есть ответ :
https://ru.stackoverflow.com/questions/886352/Где-скачать-jre-11
>Если же вы хотите послать свою программу конечному пользователю, у которого теперь нет подходящего JRE и который не хочет устанавливать JDK, вы должны создать рантайм среду (некое подобие старого JRE), которая будет включать лишь необходимые Java модули, включая модуль вашей программы.
Но я вообще нихуя не понял еще с этапа создания модулей и сборкой мавеном. Можете объяснить на пальцах, там вроде легко должно быть.
под автотестами я имел ввиду проверку задач тестами онлайн. Хз че там, юнит тесты? Не владею терминологией.
как ты хочешь сделать исполнительный именно jar`ник, если в системе нет jdk jre. Упаковывай в exe свой jar и jdk (вроде jre сейчас отдельно не идет), а лучше возьми native image graalvm
Я хочу то, что челик на стековерфлоу объяснил. Но я не понял полную последовательность действий.
Запихать какие-то модули с jvm то ли в отдельную папку, то ли в джарник. Я ничего ни о мавене, ни о модулях не знаю, ньюфаг.
Или еще как то. Короче мне нужен простой способ поставить джава машину 11 на комп пользователя, чтобы весило поменьше и не надо было ковырять всякие path.
Любой литкод с задачками по основам языка. Хоть джавараш. Хекслет выглядит весьма годным и приближённым к реалиям разработки, но вся годнота платная. Я в своё время основы жабы выучил на курсе Седжвика по алгоритмам, но тогда уже работал программистом на другом языке.
Самая засада в том, что до уровня "пишу консольные приложения и гоняю массивы в три потока" можно научиться где угодно, но без баз данных, гита, веба и спринга с хибером ты нахуй никому не сдался. А это всё постигается в работе над настоящим проектом.
Для начала тебе нужно создать не просто jar, а java-модуль, упакованный в jar. Потом запускаешь утилиту jlink, как в примере, но со своими названиями. Она создаёт тебе в указанной директории рантайм джавы и батник для запуска твоей программы. Всё это хозяйство (джарник и директорию с рантаймом) берёшь с собой и запускаешь на другом компе с помощью всё того же батника.
Кстати и с гитой, бд и.т.д ты тоже не особо кому то оперся, так немного знаешь методы разных либ, по хорошему дальше утыкаться носом в какую нибудь технологию и нюхать пока не прозреешь.
Но соглашусь, только на первой работе понял как работает вся эта кухня вместе.
Слушай, а с веб приложением так можно? Типа, открыл экзешник и у тебя джава поставилась, томкат взлетел и тд?
Если приложение под спрингом делаешь, он автоматом томкат подрубает с jar-ника. Так что никакой разницы быть не должно. другой анон
Раз у тебя возник такой вопрос, то скорее всего для твоей задачи тебе нужна не джава, а более подходящий инструмент. Способы, конечно, есть, можно хоть пхп запаковать в экзешник, но зачем забивать гвозди микроскопом?
Точно, спасибо.
В 18-19гг., менял работу, поэтому хотелось уверенности (п.3), продать себя подороже (п.2) и подготовиться к собесам (п.1).
Если что, опыт в 2 года разработки имеется и массу всего знаю, хочу подготовиться к собесу, чтобы ни по одному вопросу не проебаться
Я изучал через исходники джавы, просто заходя в директорию и тестируя каждый метод каждого класса, по другому не умею так как по книжках вылетает инфа через неделю, но по итогу самый простой совет просто гуглишь вопросы на собес джавы и на каждый у тебя должен быть ответ, если ответа нет идешь либо разбираться либо гуглишь ответ либо там уже ответ будет
Жабараш платная, с идиотскими картинками и по отзывам хуже гиперскилса. Платить за гиперскилс я не собираюсь, так что сравнение не уместно. Ты бы еще "где угодно" - офлайн курсы назвал или универ.
Ты так говоришь где угодно, как будто тебе эту хуиту от жидбрейнса, как золотую пулю продают. Я до того, как такие задачки начать гонять шел чисто по учебники и вообще не догонял.
Ну и твои наезды вообще странные, особенно когда приводишь нерелевантный опыт. Само собой ясно, что гиперскилс это для совсем нулевых, для кого жаба первый язык.
Так я вот скоро закончу. Раз ты такой опытный - скажи, где я могу получить знания по джаве получше погоняв массивы в консольных приложениях.
Побаловаться хочется, стало скучно учиться. Типа слишком сложно для такой мотивации?
Нормально. Во всяком случае лучше, чем играть в дотку.
Когда первый раз на работу пришел, со мной пришел ещё один чувак мой будущий коллега с которым мы проработали 2 года вместе, а потом разошлись по разным компаниям, так вот я дрочил джаву по книжкам дедов, а он прошел джавараш, по итогу у меня были более глубокие знания в некоторых областях, а он знал намного больше но вширь, и по итогу он уже гуглил бест практики для стримов, а я сидел и говорил "кто это такой ваш стрим?" Никаких выводов не делаю, просто история из жизни
>а я сидел и говорил "кто это такой ваш стрим?"
Как тебя без стримов на работу взяли??? Или ты на заводе или в НИИ работаешь?
Это был 2015 год, проект на java 6 + EE, каким стримы? Мы просто новую бизнес логику писали на 8, потому что какой то чувак выпросил обновить джаву
Мне тут же в треде отсоветовали джавараши, да нагуливал я часть курса, она не очень. И если ты про стримы, которые фукциональные, а не ввода-вывода, то их вроде нет в их курсе.
Значит джава раш тут не причем, он видимо больше интересовался джавой в то время чем я
https://javarush.ru/quests Вот можешь посмотреть. Задачки у них под пейволом, но "теория" сейчас почему то открыта. Там уровень сильно ниже, чем в гиперскилсе.
>Ты так говоришь где угодно, как будто тебе эту хуиту от жидбрейнса, как золотую пулю продают
Ну как бы рекламная замануха была именно такая. А в итоге всё то же самое, но в хорошей упаковке. Да, удобнее, задачки лучше, прогресс и мотивация есть, но доводят в итоге до того же уровня, что и остальные. А потом крутись как хочешь. В этом была суть моего послания.
>Так я вот скоро закончу. Раз ты такой опытный - скажи, где я могу получить знания по джаве получше погоняв массивы в консольных приложениях.
Обычно советуют после основ пилить свои проекты, изучая отдельные темы по мере возникновения проблем, пытаться коммитить в опенсорс. Но на практике это невероятно сложный и демотивирующий процесс, особенно после структурированного курса для начинающих. Мне кажется, что самое эффективное это либо обучение с ментором, которое стоит денег, либо пытаться попасть на стажировку за еду.
Я живу в зажопинске, тут нет стажировок даже с доплатой с моей стороны. Где купить ментора и как его танцевать?
https://lmgtfy.app/?q=java+ментор
Есть целые конторы, есть отдельные менторы-фрилансеры. Работают удалённо. Говорят, можно даже на хэдхантере найти.
Ну там где написано что куда, типа есть контроллер, он ложится в конфиги, есть апликейшн пропертиес, они ложатся в ресурсы и т.д.
Надо программу писать на работе, а я не ебу че каво.
Спринг+ градле, если что.
Гугли "spring project structure best practices"
Ну и на гитхабе можно глянуть примеры, они все плюс-минус по одному шаблону.
Спасибо большое, анончик.
А когда его в 15 обещали? Учитывая масштабы влияния на JDK он еще минимум 2 года будет в EA.
>первый раз на работу пришел, со мной пришел ещё один чувак
>он прошел джавараш
Вспомнилось, как сидел в переговорке, ждал кого-то, а в соседней собесили вкатывальщика.
И вот на вопрос про проекты он сказал "задачки решал с жавараша". Возникло неловкое молчание, затем сначала я из-за стены взвизгнул, потом тимлид, спустя секунд 5 и хрюша перестала сдерживаться и мерзко захихикала.
Парень сделал вид, что ничего не произошло. Что дальше было, я не знаю.
>>809223
>либо обучение с ментором, которое стоит денег
>либо пытаться попасть на стажировку за еду
Сходи в армию, там тебе и сержант будет, и бесплатно поработаешь.
Конченный, блядь, ты хоть понимаешь, как выглядишь перед работодателем? Любой блог открой, того же хохла, например. У него в каждом втором видосе идёт разговор про софтскилы, эстимейты, обучаемость.
И тут ты приходишь.
"Гражданин начальник, я не могу сам обучаться! Работать тоже не смогу, нужно чтоб сзади стоял погонщик и кнутом щёлкал. На нормальную работу меня не берут, я готов хуярить за еду (читай - от меня будут одни убытки)."
Инициативность? Самостоятельность? Любознательность? Способность быстро обучаться в условиях постоянно изменяющихся технологий и бизнес-требований? Впизду, берём этого! (Нет)
Вишенкой на торте идёт ещё и отсутствие в/о, верно?
Да вообще пиздец.
>Вспомнилось, как сидел в переговорке, ждал кого-то, а в соседней собесили вкатывальщика.
>И вот на вопрос про проекты он сказал "задачки решал с жавараша". Возникло неловкое молчание, затем сначала я из-за стены взвизгнул, потом тимлид, спустя секунд 5 и хрюша перестала сдерживаться и мерзко захихикала.
Парню надо было после собеса, написать на вас мудаков, отзыв на всех платформах отзывов о работодателях.
Посмотрел, везде по-разному, накидал свой вариант, нормально? По терминологиям именований противоречий, вроде бы, нет. Хотя некоторые тонкости трудно различать.
Мимо
Самое годное это книжка Мартина Фаулера "Шаблоны разработки корпоративных приложений" (Patterns of Enterprise Application Architecture). Это сухая теория, практически не устаревшая за 10 лет. Ещё у спринга есть "эталонный" проект Pet Clinic, можешь туда заглянуть.
Ого, ну ты и порвался. Ты ещё скажи, что сам в джуниорстве не на рабочем проекте учился, а пришёл уже с готовыми знаниями после самообучения через интернет. Если ты, конечно, не школьник, изображающий себя бывалым гребцом.
Слишком подробно. У нас в команде структура разбивается по функционалу, то есть там configuration, controller, repository, service, integration, model. Внутри уже лежат специфичные классы для разных бизнес сущностей. В спринг пет клиник наоборот, папки под отдельные бизнес сущности, а внутри разные по функционалу классы вперемешку. Не знаю, что лучше, решай сам.
Контроллеры надо вывести из бизнес-логики.
Вообще, делать можно как угодно, прям жёстких требований к этому нет, вопрос лишь в семантике.
Можно хоть положить всё в один пакет, и будет работать, потому что обычно классам в одном проекте стараются давать уникальные имена.
>когда каждый класс лежит на своей узкой полочке, аж дышать легче становится.
А еще можно писать так, чтобы в классе было не больше одного метода.
Если это результат разумной декомпозиции - почему бы и нет.
Ни на одних курсах "войти в айти за 28 дней" не был, читал книги и по ним учился.
Другого пути нет.
А как по одним книгам учиться? Вот читаю я книгу, погонял пример из книги, но не все и не везде понял. Для закрепления нужно бы задачки порешать, но в большей части книг задачек нет, а в тех, что есть - можешь сделать, но их никто не проверит.
Jlink работает только с модульными jar. То есть всё твое приложение, включая все твои зависимости должно быть модульным. На сегодня 95% библиотек на жабе нихуя не модульные. Максимум добавили строчку в манифест с объявлением имени автомодуля и всё. Некоторые да же этого не смогли сделать за 3 года.
Нахуй тебе такая глубокая вложенность? Чем более плоская модель - тем проще она в понимании.
Выкидывай "application", "businesslogic" и "domain" они никакой информации не несут. DAO и repository это одно и то же, выбери что-то одно.
>в большей части книг задачек нет
В большинстве нормальных книг есть задачки после каждой главы. Вот сходу могу точно сказать, что у Кормена были задачки. В красной книге по скале были задачки. В её java-аналоге они были. В SICP они были.
>их никто не проверит
Я выше перечислил пару книг издательства Маннинг, там есть решения с тестами, где можно проверить.
На крайний случай всегда можно загуглить те же "99 problems in ...", пикрил, открыть литкод, открыть sql-ex.
Дальше уже просто открывать ХХ, писать хрюше - она найдёт тебе задачку. Если решишь - ещё и на работу устроишься.
Кормен это алгоритмы вроде, сикп - лисп, непонятная книга по скале тоже само собой не джава. Зачем ты привел столько нерелевантных примеров? Я же не об этом спрашивал.
Я не нашел адекватных учебников для новичков с задачами, иду по Хорстману(там нет задач), решаю задачки в гиперскилсе.
Динамический состояния представлять исключениями, это вообще костыль.
Без налла, как без анала, никак, просто надо как-то маркировать методы.
> DAO и repository это одно и то же
Есть мнение, что это не так, мол, DAO - это голый SQL, работающий с таблицами напрямую, а репозиторий на уровень выше, работает уже с сущностями через ORM. Ну и другое мнение, что хуйня это всё.
в сервисе бизнослогика
в репозитории персистенс сущностей(юзает интерфейс дао или юзает интерфейс орм)
дао содержит реализацию персистонса(вместо дао может быть нихуя, если юзается орм)
те, дао и орм — по сути одно и то же, ибо выполняют маппинг модели а схему бд и наоборот.
Да и у меня тоже, хоть и не видел его ни разу.
Ладно.
Потому что это шаг назад, шаг к усложнению. Вместо декларативного описания тут чуть ли не пишешь скрипты сборки, со всеми вытекающими последствиями.
Достаточно много людей думает, что новое всегда значит лучше. Да и копнёшь чуть дальше пет-проектов и хеллоуворлдов - везде мавен, даже если и были попытки юзать градл, то потом выкидывали.
Ага, и написал дохуя плагинов, скриптов и конфигов, чтобы работало нормально, он-то может себе позволить. А большинству нужно пилить фичи вместо ебли с системой сборки.
Кто бы что ни говорил, но статическая типизация хуёво подходит для скриптоты.
Интересная информация про новый вид сдачи экзамена,благодарю.
Готовлюсь по дефолтным книжкам OCA OCP от Boyarsky, думаешь будет достаточно для сдачи нового экза? просто если сейчас есть 2 экзамена - 2 книги, то с новыми порядками я даже не знаю, вряд ли литература соответствующая появится.
>>808552
Спасибо за развернутый ответ, слушай, я живу в умирающем миллионике, тут что-то с пунктами сдачи туговато и я пока не разобрался есть ли в моем городе что-то такое(если что не проблема скататься в какой-нибудь дс).Можно ли через какой-то сайт посмотреть пункты сдачи по РФ? Туповатый вопрос, понимаю, но может ты сам сталкивался)
Не понял вопроса.
Есть заказчик, и он говорит, что за фичи ему нужны, и заводит задачи в джире. Причём какие-то фичи ему нужны поскорее, а какие-то могут подождать. И ебитесь как хотите. Ну а дальше бизнес-аналитики расписывают, что именно нужно сделать, тимлиды создают задачи поменьше и распределяют, кто, когда и что будет делать. Если ты джун, то частенько тимлид расписывает задачу подробно с указанием того, как именно нужно реализовывать, на какие места в коде обратить внимание и т. д. А если поопытнее, то как правило сам уже всё понимаешь и делаешь.
Понятно, спасибо.
В новом git-bash (2.28) запилили какую-то экспериментальную фичу, из-за которой можно и winpty больше не писать. Продолжаю держать в курсе.
Я - не те аноны, но скажу.
Сдавал 1z0-808 в августе, готовился по книжке Боярски и мок-экзаменам Enthuware. Последнее очень рекомендую, вопросы сложнее, чем те, что на реальном экзамене, и главное, к каждому вопросу есть описание и дискуссия на сайте. 10 баксов стоят, можешь поискать ломанные.
Пункты сдачи можешь посмотреть на сайте Pearson Vue, там же, где будешь бронировать экзамен. Есть опция сдавать из дома, т.н. Proctored exam, но это то еще удовольтсвие: ручкой и бумагой пользоваться запрещается, смотреть в камеру, вставать нельзя, глаза отводить нельзя. По-моему, лучше в соседний город съездить.
Удачи.
https://courses.baeldung.com/p/lss-rws-certification-class
Я совершенно не ньюфаня, просто предоставляется возможность полностью погрузиться в одну из платформ, но внятной и глубокой информации по этому выбору нет (везде что-то поверхностное).
Есть у кого интересные мысли по поводу той или иной технологии, любое мнение будет полезно.
Окей, умник. А если серьёзно?
>но внятной и глубокой информации по этому выбору нет (везде что-то поверхностное).
У обоих платформ есть свои достоинства и недостатки. Из плюсов Java- более распространенная больше вакансий, больше библиотек и фреймворков видел доклад, где чуваки делали Java-.Net интероп чтобы использовать Java библиотеки, хороший тулинг. У Java есть альтернативные JVM - да, не все сидят на Oracle JDK. Java поддерживается и развивается, не только Oracle.
У .Net и C# - больше сахара. Все необходимые инструменты - IDE, пакетный менеджер, система сборки, без изысков, но есть. Платформа развивается.
В целом C# более продвинутый язык чем Java, но JVM превосходит .Net Core как платформа и по количеству и качеству фреймворков и библиотек.
Писал около 2х лет на Ноде, к которой с недавнего времени добавился ТайпСкрипт. Подумываю взять статически типизированный язык и в перспективе перекатитсья в него. Присматриваюсь к Жаве, но что-то мне сдается что большинство вакансий будут дремучим легаси, а мне б этого не хотелось. Какие версии Жавы на данный момент чаще всего юзаются в коммерческой разработке? (бэк, энтерпрайз или мобилки)
уже? отстал от жизни чутка
Примерно через неделю после начала изучения, я записался на белорусский онлайн курс по JS. Для общего развития и из интереса. На днях осознал, что изучение обучение на курсе внезапно занимает дохуя времени и страдает джава. Так вот вопрос - стоит ли так разрываться меж двух языков или лучше сконцентрироватьяс на одном и забить на курсы? Я вообще не уверен, нужны ли мне знания по JS, но осознаю что инструменты и задачи у них абсолютно разные.
>
>
я учу java неделю примерно и уже в ахуях от нее) а разрываться на 2 ЯП.. я бы не стал. тем более, если тебе эт не надо)
Все же решил сконцентрироваться на джаве. Но все же готов выслушать мнение ананасов о том, насколько тупа или охуенна затея учить два языка одновременно
Да к тому же у меня автошкола + подработка, и времени считай вообще в обрез.
И я тоже ахуевал, и продолжаю порой ахуевать от джавы, но это хорошо же =) Главное влиться в поток и там уже попрет. В начале всегда сложно. Ну, надеюсь что так и будет лул
я бестолочь в языках, но мне чет мне кажется, что тут большинство тебе скажет, что это просто извращение без особого толку. сам себя запутаешь
>>812016
ахах
еще и автошкола) ты че, перфекционист?
настроил много планов, но тем проще будет тебе обосраться
опытный прогер тебе скажет что знает много языков, но одновременно вряд ли использует.
>Какие версии Жавы на данный момент чаще всего юзаются в коммерческой разработке? (бэк, энтерпрайз или мобилки)
У нас основная 11, и некоторые сервисы переводим на 14.
Мне уже 25, времени как сейчас уже не будет. Тем более что хочу вкатиться в джаву и начать работать в этой сфере.
А ты какой лвл?
30 ;0
>Q: ЧТО СКАЖЕТЕ ЗА ДЖАВАРАШ?
>A: Худшая инвестиция в твоей жизни.
Почему тогда люди прошедшие его или даже прошедшие около половины находят работу?
Прям как в том анекдоте, про Битлз. Я сам не слышал, мне Мойша напел.
Покупать джавараш не обязательно, ставишь эмулятор андроида, ставишь их апкашку, пишешь в идее, копипастишь в эмулятор. Но это прям пердолинг, проще раз отдать за месяц 1200р (это со скидкой для новичков) и понять нужно тебе это или нет не нужно
Я вот честно не понимаю откуда столько хейта в их сторону. Там охуенно можно прокачать знания джава кора. Все эти задачки по выводу говна в консоль даются только на первых где-то 10 уровнях. Дальше сложнее темы идут.
Делаю аплекуху со статьями и нужно вывести самые популярные, как сделать эту логику?
Думал добавить статье поле long rating; и просто делать инкремент на каждый GET запрос на эту статью. Потом доставать статьи с наибольшим числом.
Так норм будет или есть получше решения?
> добавить статье поле long rating; и просто делать инкремент на каждый GET запрос на эту статью
Так это и работает же, нет? Зачем какую-то гига-сложную логику придумывать?
мимо вкатывальщик
@Transactional
public boolean isUserSetForDate(UUID id, LocalDate date) {
User user = this.dao.getById( id );
return user.getListOfDates() -тут НПЕ
.isDateBooked( date );
}
@Test
void isPlaceSetForDate() {
User user = new User();
mockRepo.save( user);
Assertions.assertEquals( this.userService.isUserSetForDate( user.getId(),LocalDate.now() ),false ); /TODO correct/
}
Вообще, если логику сервиса тестить, можно ли его мокать?
Интересует вопрос защиты от спама F5 и накрутки рейтинга одним поехавшим юзером
Создай таблицу с ip и id поста и добавляй туда записи при первом просмотре, а посты сортируй по group by post_id order by max(count(*)) desc.
Попроще,чем в ЕПАМ, беларусы - аутсорсеры. Хотя отсев неплохой, начиная с тестового на вход в курсы,заканчивая нагрузкой. Процентов 50 уже слилось из 12,где-то.
Вот, поэтому мне нужен консалтинг по мокито, а то кукуха его не переваривает,увы.
То, что отсев неплохой это неудивительно конечно. А вот то, что всего 12 человек пробовалось - это маловато как-то. Хотя они походу на стадии набора в группу отсеяли много.
> мокито
К сожалению не использовал его, поэтому ничего не могу сказать.
По слухам, фармят топ людей сейчас.Вкатится довольно трудно. Хотя лет 5 назад свитчились знакомые в СПБ без опыта работы, в целом, положительно отзывается,хоть и галера.
Ну я здесь в Украине смотрел их требования, то вроде бы ничего такого сверхестественного на позицию trainee.
ThymeLeaf and FreeMarker на спринг буте современное решение или есть уже сервисы(желательно фришные), которые всё делают лучше, красивше, удобнее?
Я таймлиф точу, а так ангуляр для фуллстека более продвинутый лвл
Трэйни != трудоустройство.Увы.
>>810341
Вобщемта, я начал свою программерскую жизнь с того, что изучил сисярп практически по одной тоненькой книжке, ну ещё прошёл текстовый курс на Интуите (курсеры тогда ещё не было). И у меня была реальная задача: для диплома нужно было сделать программку-расширение, которая общалась с одной монструозной системой через .NET API.
ПОТОМУ ЧТО БЛЯТЬ ЕГО НЕ СУЩЕСТВУЕТ, ПОСЛЕДНИЙ ЖРЕ, КОТОРЫЙ МОЖНО БЫЛО СКАЧАТЬ, БЫЛ 8
А КОГДА ТОГДА БЛЯДЬ ПОНИМАТЬ
zalypa has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0
Ждк включает в себя жре. Чтобы получить более новое жре, надо обновить ждк.
А потом ебаться с жлинк, чтобы сгенерировать жре отдельно, если нужно. или скачать здесь: https://adoptopenjdk.net/releases.html
Я на эту хуету уже половину рабочего дня угробил. Топ 5 владельцев акций компании Oracle заправят кровью лично мне.
>заплатят
фикс
Так скачай с оракла последний JDK и не парься. Ну или ещё можешь перекомпилять свою залупу под восьмёрку, добавив -target:
>javac -target 1.8
Да нихуя анон, нихуя. Все пробовал, и один лишь вкус головки полового члена в своей ротовой полости ощущаю я. Вот я делаю вид, что мне никто ничего не должен, что я сам отчасти виноват в своих проблемах, что все мы в равных условиях и развиваемся по мере возможностей и издержек эволюции, но в глубине души прекрасно осознаю, что всякая сволочь, съевшая хоть булку хлеба на рубль со спекуляций на человеческих слабостях, продаж бесполезной хуеты и прочей капиталистической содомии, должна принести мне в жертву всех ближайших родственников, и в один прекрасный день это произойдет. Ибо в том, что я не родился в ламповом анимешном социалистическом раю, где нет места подобному пердолингу, виноваты вполне определенные пидорасы, не хотевшие участвовать во всемирном благоустройстве.
> Как проекты пилятся в компаниях? Вы берете тз и сами решаете какую сегодня фичу запилить или вам дают четкие задания реализовать такой-то класс или такую-то логику? Я имею ввиду, вы всегда четко знаете, что вам нужно реализовать? Часто приходится самому что-то выдумывать?
Дают ТЗ. В нем дай бог хотя бы половина будет описана так, как это должно работать. В процессе кодинга ебешь мозги аналитикам, задаешь вопросы. Где-то ближе к концу аналитик осознает, что нужно переделать половину логики, потому что ему или заказчику это кажется пиздатой идеей. Доеиливаешь проект
> >Q: ЧТО СКАЖЕТЕ ЗА ДЖАВАРАШ?
> >A: Худшая инвестиция в твоей жизни.
> Почему тогда люди прошедшие его или даже прошедшие около половины находят работу?
А откуда у тебя такая информация? На джавараше прочитал?))))00
Прошёлся поиском по нашему проекту, юзается. По ощущениям, у нас юзается вообще всё ЕЕ-шное.
Это не ключевой навык, скорее всего, не будет такого, чтобы тебя развернули на собесе только из-за того, что не тыкал.
Ну эт понятно, окей.
> Знать нужно? Муторно выглядит, не каеф в это лезть..
Не нужно. Если и припрет на каком-то проекте, разберешься. Таким никто не дрочит на собесах. Я, ковыряю в носу, за неделю прикрутил spring security + ldap аутентификацию.
схоронил
Я как обычно наверное не понял сложности задания... Ты говоришь
>с замоканным дао
, ну так возьми этот замоканный дао, и сделай when(daoMock.getById(anyInteger()).thenReturn(user). Юзера ты уже создал, в чем проблемы? По необходимости твикай, создай еще юзера, создай зависимость от параметра.
> Где-то ближе к концу аналитик осознает, что нужно переделать половину логики, потому что ему или заказчику это кажется пиздатой идеей.
ПЕРЕДЕЛЫВАЕШь
@
ТРАТИШЬ ДОХУЯ ВРЕМЕНИ НА ФИКС БАГОВ
@
ТЕСТИРОВЩИК ТРАТИТ ДОХУЯ ВРЕМЕНИ НА ПОЛНЫЙ РЕГРЕСС
Каждый пользователь имеет свою сессию, что позволит тебе не засчитывать просмотры от обновления страницы и.т.п. Это первый фильтр.
Второй фильтр только через JS, чтобы просмотр статьи фиксировался только после нахождения на ней более 30 секунд (1 мин.)
Ну они не только джава раш проходят потому что. Некоторые мои знакомые-вкатывальщики как раз прошли где то двадцать заданий, потом по-другому оттачивали уже навыки (с ментором или еще что-то). Вот и получается что джава раш было лишь одной ступенью к началу карьеры. Т.е. это вполне рабочая схема.
Что спросят?
Дата пойдет спасибо анон!
Там есть раздел, истории успеха, где пишут люди которые нашли работу, которые там учились.
javac --release 7 NameOfYourProgram.java
Если у тебя веб-стек, то звучит как план.
Почему ты везде ищешь негатив?
Классика.
У тебя на руках есть статистика или это просто личное ничем не обоснованное мнение?
Это двач, здесь всё — личное ничем не обоснованное мнение
Я нихуя не понимаю, у меня все работает, а баг известно где.
Гуглил, написано, может на каких-то версиях websphere application такое быть.
Не знаю, при чём тут сфера, драйвер кладётся в неё отдельным жарником, и сфера в него по идее не должна лезть. Можно попробовать скачать разные версии драйвера и попробовать на них. Но сейчас проверил на 8 сфере и 12 оракле, для clob вернулся именно null.
как вы предпочитаете кодить: под музыку или в тишине?
Под музон. Но я чаще не кодю а с коллегами болтаю...
>Как называется класс для данных для прокидывания их в бизнесс сервисы?
>не DTO
Хм... Сколько букв?
В тишине, под музыку тупо не могу сосредоточиться.
Делание чего-либо под музыку безошибочно детектит пустышку без талантов. Такому человеку "нечего терять" в плане способностей к глубокой умственной работе, вот и похуй на шум. А музыка еще и создает иллюзию более насыщенного времяпрепровождения, прям такой движ по жизни, чтоб наш кабанчик, вырвавшийся из грязи в князи и прочитавший пару умных книг, не дай боже не усомнился в своей продуктивности. Ведь это так пиздато с видом Ерохи делать всякую бесполезную хуйню с КПД 15% и рассказывать скромным задротам, какие они ленивые уебаны теоретики.
Под ASMR, только в которых слов поменьше, и строго обязательно на англ. - неплохой фон получается, и не отвлекает, и странным образом придает сил.
терпеть не могу ASMR и шепот.
мя триггерит люто(
я не то что код не напишу, а еще завалю кого-то от злости
чет полыхнуло)
Ты не прав. Если делать типовые задачи( которые ты уже делал раньше и ничего нового там нет ), то можно и под музыку. Так даже легче не отвлекаться.
Странно, всегда считал что мы здесь все интроверты-любители ASMR и цветных лошадок.
Соглашусь, пожалуй...
Я даже когда бегаю или в зале занимаюсь, не могу слушать музыку в наушниках - дезориентирует сильно.
на вкус и цвет все фломастеры разные, как я понял
как он работает и че он. зачем его использовать, зачем показывать явно?
а какие еще варианты ответов?
Показывать явно для всякой хуйни типа сериализации
Ну вот есть класс с перечислением полей, которые будут у созданного объекта. Непонятно, как и чем эти поля заполнять при создании нового объекта, и конструктор как раз этим и занимается, то есть берёт аргументы, которые ты ему передаёшь, и основываясь на них инициализирует поля нового объекта.
Инфоцыгане опять высрали какие-нибудь курсы наверное, сейчас же к нг будут появляться исследования типа сколько зарабатывает средний погромист)))
Ура, по 500 человек на вакансию с модной молодёжной хипстерской джавой! Сотни вопросов про System out.println()! Лабы! Почему цикл for не компилируется!
> Ура, по 500 человек на вакансию с модной молодёжной хипстерской джавой! Сотни вопросов про System out.println()! Лабы! Почему цикл for не компилируется!
Пацаны, хочу вкатиться. Какие книги читать, посоветуйте видосы, а че вообще по практике делать, как вкатиться за месяц и рубить 300к/нс
Свои плюсы, минусы, насколько быстро веб заменит нативные приложения, насколько что перспективно и т.д.
Разговоры про котлин отставить.
Котлин это остров, а Скала - актер
Когда думаю - то чаще всего в тишине.
Когда задача уже готова в голове, осталось только перевести мысли в код - то иногда врубаю что-нибудь под настроение, вот недавно часа 5 под слеер хуярил, заебись ваще, если б жрать не захотелось то хрен бы остановился.
Так-то всё равно, главное в поток войти, а там уже хоть клоуны вокруг скакать будут, мне уже насрать.
Андроид это ебля с разными версиями андроида и кучей разных устройств и разрешений. Плюс немного проблем с самой платформой - типа приложение выгрузили из памяти, до того как пришел HTTP reponse и все наебнулось.
Энтерпрайз - это ебля со 100500 разных фреймворков, невнятных и противоречивых бизнес требований (7 красных линий), просраных дедлайнов и все это сверху смазано девопсом - джар в докере, докер в кубернетисе, кубернетис в облаке, облако в 2-х зонах.
А еще есть верстка и жопаскрипт, это отдельная очень увлекательная дисциплина. Тут, для успеха, тебе понадобиться латексный костюм и кошачьи ушки.
мне как-то оч хорошо думалось под альбо Despised Icon "The Ills of Modern Man"
Двачую. Музыка для суходрочеров. Никогда не понимал на соревнованиях, нахуя перед подходом нюхать какую-то ссанину, по спине бить, музыку громче делать, кричать. Уебанство. Онли спокойствие, онли невозмутимая силушка, ух бля.
Кста, вот взвешивание за джва часа до выступления - та еще подстава. Может я хочу не срать день перед выходом, шоб нейроны бодрее бегали.
Спасибо, анон.
mapstruct я бы брать не стал. Остальное всё - норм
Бывает по-разному. В команде здорового человека - проходят планирования с участием всех членов команды, задачи оцениваются с учётом всех мнений и набираются в план на итерацию.
В команде курильщика - хаос
> либо не связано с джавой
Потому что это действительно несвязанные вещи, и изучаются отдельно друг от друга. Докеру без разницы, джаву ты в него пихаешь или C++. Джаве без разницы, на чём запускаться, лишь бы была JVM. Но докер и джаву можно юзать вместе, нужно специальным образом подготовить докер-образ, дать ему на вход java-приложение (хоть жарник, хоть сервер приложений с war/ear-никами) и тупо запустить.
Начать можно с видеомурзилок на ютубе, просто вбить "основы docker" и смотреть плейлисты.
Ну а дальше гуглить "java как сделать docker-образ". Кратко: создать файл с названием Dockerfile с таким содержимым:
FROM java:8
WORKDIR /
ADD myapp.jar app.jar
EXPOSE 8080
CMD java -jar app.jar
И запустить:
docker build -t myapp .
docker run -p 8080:8080 myapp
Здесь создаётся образ на основе существующего образа java:8 (из центрального репозитория докера), в него копируется файл myapp.jar, указывается порт 8080 и команда для запуска жарника. Дальше двумя командами билдишь образ и запускаешь, пробрасывая порт 8080. Вообще ничего сложного.
Суть докера не в том, чтобы запустить приложение в виртуалке, а в том, чтобы изолировать приложение со своим окружением от остального мира, сохранить всё это и мочь быстро развернуть где угодно. Теоретически, можно и без виртуалки, просто как ещё создать изолированные окружения? Разве что chroot, но у него много своих проблем, да и на винде не работает.
Одной jvm мало, приложение юзает внешние файлы и всевозможные СУБД, очереди сообщений, кеши и прочие сервисы. И предлагается всё это разворачивать в докере, чтобы не мешать хосту.
Понятно. То есть будет плюсом, если я разверну, например, небольшой интернет-магазин на докере?
В общем-то, это может решить некоторые проблемы с конфигурацией и развёртыванием.
Если для собесов, то я даже видел тестовые задания, где один из пунктов - запаковать своё приложение в докер.
Окей, учту. Спасибо.
Благодарю! А как базу данных добавить? Изначально в Dockerfile что то прописывать?
Два варианта:
- если БД на хосте, то просто подключаешься к её порту, но не через 127.0.0.1, а через IP хоста
- если тоже в докере, то к IP контейнера. Правда, обычно делают не через IP, а DNS-имена, которыми управляет сам докер, как в примере docker compose: https://hub.docker.com/_/postgres
Есть апи гейтвей для фронта. Есть сервис авторизации, который возвращает аксес и рефреш токены.
Где лучше их проверять, что мол DELETE /mySecuredService можна делать только если токен валиден и у акка есть админ роль.
Вставлять фильтры в каждый сервис или это можно в апи гейтвее наконфигурить где-то со списком эндпоинтов всех сервисов, куда ходить незя, если ты не админ.
SoapUI.
Надо проверять это в микросервисе, потому что это его зона ответственности. Апи-гейтвей просто роутит запрос к этому микросервису и возвращает ответ, в данном случае ошибку.
Я так понимаю это логика какого-то айти бизнеса допустим. Или какой-то менеджер транзакций работающий по своим алгоритмам написанный на Java и т.д.
И как выглядит вообще эта разработка?
Тупо аатоматизация бизнес-процессов. Проект выглядит так: у тебя сравнительно небольшие по количеству кода эндпоинты и DAO, но при этом ебически огромные сервисы, в которых куча условий, настроек, интеграций, сущностей и прочего. И бизнес-требования в духе "необходимо автоматически изменять статус заявок от таких клиентов в будни и в первые дни месяца, но только если есть такие-то данные и включены такие то настройки, а если нет, то делать что-то другое". Пишет это целая толпа разрабов, даже самые опытные из которых полностью не понимают, как работает проект, и поэтому все специализируются на какой-то части проекта, и они всё время общаются с аналитиками, чтобы хоть как-то худо-бедно прояснить, чего именно хочет заказчик.
Ага, мало кому нравится копаться в легаси.
Есть задача, ломаю голову уже несколько дней.
Допустим в монге хранятся сущности Food (String name, List<String> ingredients)
Задача такая: Я присылаю с фронта список ингредиентов "sugar","milk","meat","eggs"
И нужно вернуть из базы ответ с едой с хотяб 1 из этих ингредиентов, НО! отсортированной в порядке количества совпадений.
Т.е. еда у которой всё совпало 1я, у которой совпало 3 из 4х - 2я и т.д.
Можно это как-то через агрегаторы напилить, а то я ебусь уже столько времени и только на джавке написать сортировку смог.
В эластике есть специальные средства для сортировки данных по точности совпадения. А в постгре что есть?
Вот это уже больше похоже на совет, почему лучше брать эластик.
Ну есть и интересные проекты.
Я писал трейдинговую платформу, где надо было максимально быстро получить базовую цену от прайсинга, посчитать цену для конкретного клиента и отправить ему, потом так же быстро получить его заявку, провалидировать ее и гарантированно отправить в лайфсайкл систему. Тут реально надо было понимать, когда хешмап работает медленней цикла по массиву и когда и сколько памяти аллоцируется.
Был проект где был метаязык на котором клиенты телеком описывали формат данных в основном бинарные, местами даже надо было парсить побитово, а мы этому описанию генерировали парсер на лету, прямо в байткод. Тут реально надо понимать кишочки JVM и байткода.
Есть интересные проекты, но их надо поискать. Опять же есть стартапы, где гринфилд и любые технологии.
Эх, не люблю низкоуровневщину, но тоже интересно узнать больше о кишках платформы, проштудировать спецификации языка и жвм, да всё руки никак не дойдут из-за няшного спринга.
Можно начать с няшных сервлетов.
Да-да, тоже полезно, для общего развития.
>бизнес-требования в духе "необходимо автоматически изменять статус заявок от таких клиентов в будни и в первые дни месяца, но только если есть такие-то данные и включены такие то настройки, а если нет, то делать что-то другое
Хех, а я думал, только у меня такие шизики попались.
Да везде такая хуйня, порой читаешь бугурт-тред и ощущение, будто твои коллеги пишут всё это.
English level ~ B1-B2. Reading docs and viewing vids on English without problems.
Джаву освоил сам, после крестов все ну ПРЯМ сильно проще.
Джава кор есть, даже немного прыгал в мультитреад, но насколько понял у мидлов редкая тема. Вкурсе про коллекции, и даже поделал немного код тасков.
Понимаю, что без маня-фреймворка, я - хуй. Берут ли с таким стаком на мидла?
Какие фреймворки для Java нынче востребованны, дрочить джуном после 2.5 года крестовиком за 500$ ну такое (дефолт зп джуна РБ)?
Меня бесит, что идея от него красная, например. Пока не скомпилируешь не узнаешь где ошибся.
А так вообще удобная штука. Если не знать, что идея половину делает за 2.5 хоткея. Она должна быть встроена в язык.
А что значит в курсе за коллекции? В джаве какие-то особые коллекции которые надо знать?
мимокрок-рубист-пыхарь
Каждый мега гайд как стать кулл жавистом говорит, что я должен знать про коллекции мол ниибацца важно.
По факту задача сводится к почитать 2-3 раза сборник статей на хабре про коллекции, очень хорошо расписано, в отличие от популистских сайтов.
Computer science - это информатика.
Зачем тебе информатика?
Просто учи JAVу
Сначала java за 21 день
далее javafx(можешь swing но он тепа подыхает) тут ты поймешь зачем учил джаву за 21д
отсюда легче плясать, можешь в сторону андроида, можешь в java ee
ps sql быстро учится, он и разрабатывался для операторов, а не для программистов
Вроде, в XP корзина была по дефолту в том углу, оттуда и пошло.
>Наверное, мои познания математики остались на уровне уроков математики 5-6 классов.
Типичный вкатывальщик в 2020.
А потом такому дауну местные олды с корками какой-нибудь бауманки или мехмата будут говорить, что SQL это хуйня, за пару дней учится.
И он искренне не будет понимать в чём проблема.
> Джавач, после начала учебного года активность здесь немного упала. Как думаешь, с чем это связано?
Все вкатывальщики домашку по матеше делать начали, либо с отпусков на смены на заводе вышли
Видел какой-то на 8 месяцев, мне кажется этого более чем достаточно.
100тр потратить за результат готов.
ну ты же понимаешь, что результат будет таким:
1. потрачено 100 к
2. пройдены курсы
если это твоя цель, то приступай
Напрямую использовать Entity кроме как в Репозитории и ДТО - плохая идея.
В сервисах и контроллерах лучше использовать свои модели, заточенные под конкретную задачу. А с БД работать через ДТО. :-)
Ну, например, класс достает пользователя и в зависимости от его активности адаптирует содержимое конкретно для него (как рекомендации в ютубе). К какому слою отнести такой класс?
>Напрямую использовать Entity кроме как в Репозитории и ДТО - плохая идея.
В сервисах использовать entity вполне нормально, иначе слишком ного перекладываний их одного POJO в другое. Если у тебя огромный моноли, то там конечно это может быть оправдано, но в микросервисах я бы так не делал.
В контроллерах да, там обязательно надо иметь отдельное DTO.
На чем спалюсь? Веб-сервисы - они веб-сервисы, алгоритмы и структуры данных все те же. Попробуй прикопаться.
На синьора врятли, а вот на мидла вполне. Резюме только правдоподобное подготовь. Напиши в ключе минимального пиздежа, максимального умолчания и однобокого представления фактов. Пиши что писал бэк и на java и на .net (или с чего ты там перекатываешься), создай впечатление что в основном писал на java, пиши что всегда интересовался другими технологиями и несколько последних проектов писал уже на .net но все же java больше по душе.
>
>На синьора врятли, а вот на мидла вполне. Резюме только правдоподобное подготовь. Напиши в ключе минимального пиздежа, максимального умолчания и однобокого представления фактов.
То что хрюша через каналы способна пробить всю защищенную законодательством личную инфу в том числе о предыдущих местах работы и проектах, включая рекомендацию и вредные привычки, конечно же, не смущает?
Херки даже резюме твое прочитать часто неспособны, это надо уметь читать.
И единственное, что они могут пробить - ху5м себе по лбу.
Хрюшу наебать ничего не стоит, но вот смотрящий тимлид по твоим глазкам пиздабольским всё сразу поймёт
Создал в идее новый проект, открыл в новом окне старый, кое-то покопировать, и в этом окне слетела нахуй кодировка, SDK отсутствует куда-то, все классы переназвались в .java
Что за хрень? Идея не может работать в разных окнах одновременно?
Плюсы Джавараш:
Много заданий
Комьюнити (форумы, комментарии)
Много статей
Минусы:
Тупой валидатор (не всегда, но бывает)
Короткие лекции типа сами гуглите доп инфо. Появился "Про" где лекции намного лучше, советую его паралельно читать.
Тупые и бесполезные задачи начинают проскакивать все чаще и чаще
Плюсы хайперскилл:
Проектная система - хорошо учит думать как в реале, продумывать программу. Джавараш оч сильно этого не хватает. Их тупые игры не в счёт.
Минусы:
Ужасные лекции (очень короткие, непродуманные, и с плохим английским)
Ужасный английский, иногда заметно, что Гугл транслейт пользовались [я заканчивал школу и универ в Британии, английский свободный, мне есть с чем сравнивать]
Слабое комьюнити
Медленный валидатор и медленный сайт
Подавляющее большинство проектов связанны с углубленной математикой! Нафига? Сейчас все больше про вэб.хотите математику идите в плюсы. В общем большинство проектов бесполезны, так как не учат языку особенно, а учат математике.
Очень частно не понятно что от тебя хотят в задании (плохой английский). Сначала тебе кажется, что надо написать что то на джаве, а оказывается, что математику надо знать
Очень мало заданий, материал объективно хуже усваивается чем на Джавараш.
ОЧЕНЬ много опечаток и ошибок в валидаторе, который не принимает правильное решение.
В общем не знаю кому там хайперскилл нравится, он сильно уступает Джавараш. Если только вы не типичный высокомерный математик который считает, что везде она должна быть и ничему больше учиться не надо
Плюсы Джавараш:
Много заданий
Комьюнити (форумы, комментарии)
Много статей
Минусы:
Тупой валидатор (не всегда, но бывает)
Короткие лекции типа сами гуглите доп инфо. Появился "Про" где лекции намного лучше, советую его паралельно читать.
Тупые и бесполезные задачи начинают проскакивать все чаще и чаще
Плюсы хайперскилл:
Проектная система - хорошо учит думать как в реале, продумывать программу. Джавараш оч сильно этого не хватает. Их тупые игры не в счёт.
Минусы:
Ужасные лекции (очень короткие, непродуманные, и с плохим английским)
Ужасный английский, иногда заметно, что Гугл транслейт пользовались [я заканчивал школу и универ в Британии, английский свободный, мне есть с чем сравнивать]
Слабое комьюнити
Медленный валидатор и медленный сайт
Подавляющее большинство проектов связанны с углубленной математикой! Нафига? Сейчас все больше про вэб.хотите математику идите в плюсы. В общем большинство проектов бесполезны, так как не учат языку особенно, а учат математике.
Очень частно не понятно что от тебя хотят в задании (плохой английский). Сначала тебе кажется, что надо написать что то на джаве, а оказывается, что математику надо знать
Очень мало заданий, материал объективно хуже усваивается чем на Джавараш.
ОЧЕНЬ много опечаток и ошибок в валидаторе, который не принимает правильное решение.
В общем не знаю кому там хайперскилл нравится, он сильно уступает Джавараш. Если только вы не типичный высокомерный математик который считает, что везде она должна быть и ничему больше учиться не надо
А ещё есть конторы, в которых херки даже не знают, чем занимается конкретный сотрудник, потому что комплаенс
>потому что комплаенс
Как красиво объясняют собственную лень.
Не надо пиздеть - кто чем занимается, не compaince sensitive инфа. Детали - с кем идут перговоры, некий алгоритм - это да, это может быть закрытая инфа. Но то что Вася прогер трейдингового приложения, а Ганс директор, эта инфа не может быть закрытой.
Ну изначально речь шла о пиздеже в резюме и пробивании прошлых проектов.
Подходил хр к лиду, и спрашивает, тут Сычев вписал в резюме опыт работы с еба-криптопровайдером и опыт настройки апп сервера, правда что это все в вашем проекте используется? Как-то подозрительно будет, и хр эта информация ни к чему.
Как run app на микросервисах?
Есть 3 сераиса, а и б зависят от в. Также, а и в имеют run класс, в - сборка моделей. Как все это в идее стартануть ? Никак не хочет.
В чем проблема? 2 сервиса поднимаешь на разных портах, а в конфигах укажи хост консула или что ты там юзаешь как сервис дискавери
Сам я плюсовик. Ну так вот, довольно тупо получается, решил поковырять джаву т.к. возникла идея под андроид одно нужное только мне приложение замутить, пишу стандартный хелловорлд чтобы понять особенности построения программ, а в IDEA просто нет кнопки запустить. Buidl есть а Run - нет. Ну, я же не совсем тупой, нажимаю кнопку создать конфигурацию, там какая-то куча темплейтов. Ну я почесал репу, протыкал все, решил что, наверное нужно Application, там просят указать класс Main, я прописал путь к файлику с исходником где у меня метод Main, а Ok не нажимается. Не понимаю короче. Что тыкать чтобы собралось? Объясните? JVM, JDK и прочие J при установке поставились.
Наверное следовало из консольки собирать, было бы и привычнее и проще, а то тут какие-то Groovy, Gradle, JarApplication, JavaScratch и прочие непонятные штуки и какие тыкать - тоже непонятно.
В джаве три основных системы сборки.
1. Ant - тот же Make, но в виде xml. Сейчас юзается редко, ибо сам умеет очень мало.
2. Maven - тоже xml, но другой: сборка проекта описывается декларативно. Из коробки сам умеет скачивать и разрешать зависимости.
3. Gradle - на основе Groovy, юзается в основном на твоём андроиде. Представляет собой что-то среднее между первыми двумя, ещё его можно сравнить с CMake + Conan.
По градлу можно найти какие-нибудь статьи, но из того, что я видел, всё пишется для тех, кто уже знает мавен. По мавену есть такая мурзилка: https://proselyte.net/tutorials/maven/ . Но если просто хочешь аппку для андроида, вникать во всё это не особо нужно. Вместо IDEA тебе нужна Android Studio, там уже всё настроено и прописано, можно юзать, даже не разбираясь в Gradle, и конфигурации создавать вручную тоже не нужно.
> из консольки собирать, было бы и привычнее и проще
Это только для хеллоуворлдов. В джаве в целом не принято делать руками то, что уже давно сделано и автоматизировано. Поэтому нужно смириться, что в свежесозданном проекте куча непонятных файлов, и непонятно, как всё работает вместе. Просто жмакать на волшебные кнопочки, и всё само.
Затраллел)))0)
https://www.youtube.com/watch?v=Qgl81fPcLc8
Нигерский?
Лучше начни с самого низа. В java все просто и понятно и понять как всё это бутсрапится займет у тебя несколько часов всего.
- Пишешь простенький helloworld.java
- Компилируешь его в байткод с помощью javac.exe (файлы с байткодом уже называются .class)
- Запускаешь получившийся скомпилированный .class файл с помощью java.exe
- ВСЁ. Фундаментально все эти этапы одинаковы для всех систем сборки java
- Теперь попробуй написать 2 java файла с разными классами, но чтобы один из них использовал другой.
- Так же скомпилируй и запусти
- Осознай что виртуальная машина java.exe работает именно с .class файлами и будет их подгружать из того пути который ты указал.
- Теперь чтобы не таскать папки с сотнями .class файлами придумали их все паковать в zip архив, который назвали .jar
- Чтобы можно было сразу понять с какого файла стартовать приложение придумали это описывать в спец файле MANIFEST в этом .jar архиве.
- А чтобы всё это ручками не делать используют Maven и Gradle которые делают то же самое + другие плюшки.
Запускаемый класс должен иметь метод с сигнатурой psvm. Пишешь эти 4 буквы в идее, открывается менюшка автозаполнения, жмакаешь интер и у тебя получился метод, который можно запустить зеленым треугольничком слева на "полях", там где номера строк. Java в этом плане не ушла далеко от сишки с main, winmain, dllmain...
Да и вообще от любого компилируемого языка.
> Запускаемый класс должен иметь метод с сигнатурой psvm. Пишешь эти 4 буквы в идее, открывается менюшка автозаполнения, жмакаешь интер и у тебя получился метод, который можно запустить зеленым треугольничком слева на "полях", там где номера строк. Java в этом плане не ушла далеко от сишки с main, winmain, dllmain...
Как будто что-то плохое
>в IDEA просто нет кнопки запустить. Buidl есть а Run - нет
Потому что в джаве запускается не приложение, а определённый класс с точкой входа (методом public static void main). Любой класс с таким методом можно запустить. Названия чувствительны к регистру, так что скорее всего у тебя был Main() вместо main()
[code lang="java"] var x = 10; [/code]
Вот это фокусы. С дашчана работает, в браузере просто текст между тегами.
Идея создает свои файлы для индексирования проекта, скорей всего у тебя почему-то второй проект перетер эти файлы первого. Обычно, когда ты пытаешься создать несколько проектов из одной директории такое.
Что-тотипа, да.
На самом деле при открытии проекта надо не одиночный файл открывать, а папку проекта. Сглупил и не сразу понял.
Есть, уже давно придумали. Веб называется.
На sql-ex нужно решить все задачи или какого уровня достаточно для джуна?
Ну я вот ни разу туда не заходил. Работаю уже год.
Достаточно мочь в самые основы - DDL/DML, нормальные формы, констреинты, джоины. Какой-нибудь ебически сложный SQL как правило только в OLAP увидишь.
Истории, чей то опыт.
Я понимаю, это говнокод получается, но не знаю, как правильно тестировать работу с бд.
@Before/@BeforeClass
У тебя тест должен сетапить все необходимые ему данные - создать пользователя, дать ему права и т.п. Тест не должен использовать данные других тестов, потому что первый тест задисейблили или он стал фейлиться - посыпались все зависимые.
Джава скоро обгонит го по скорости.
В пределах одной транзакции все твои действия с БД видны для всех последующих запросов в рамках этой транзакции.
- ты начал транзакцию
- отправил запрос на удаление данных (транзакция еще не завершена)
- отправил запрос на поиск только что удаленных данных В РАМКАХ ЭТОЙ ЖЕ ТРАНЗАКЦИИ и тебе вернулось пустое множество, так как ты их уже удалил ранее В РАМКАХ ЭТОЙ ЖЕ ТРАНЗАКЦИИ (транзакция еще не завершена)
- добавил новые данные В РАМКАХ ЭТОЙ ЖЕ ТРАНЗАКЦИИ (транзакция еще не завершена)
- отправил запрос на поиск только что добавленных данных В РАМКАХ ЭТОЙ ЖЕ ТРАНЗАКЦИИ и тебе вернулись все твои добавленные данные, так как ты их добавил ранее В РАМКАХ ЭТОЙ ЖЕ ТРАНЗАКЦИИ (транзакция еще не завершена)
- рубль упал, все изменения напрасны, ты ролбекаешь транзакцию (транзакция завершена)
- после ролбека транзакции все изменения сделанные В РАМКАХ ЭТО ТРАНЗАКЦИИ отменяются и их как будте никогда и не было. Другие подключения к БД действующие в рамках своих собственных транзакций никогда о них не знали и не узнают.
Что у тебя все так категорично? Ты сейчас описал самый высокий уровень изоляции, иди ознакомься с другими чтоли, учитывая что Serializable применяется гораздо реже предыдущих.
Да, я перепутал транзакцию с сессией, которую Jpa repository, должно быть, открывает и закрывает при каждом запросе, и идет взаимодействие с БД, а не кэшем. Хороший способ тестить что угодно и роллбекать, не считая тонкостей с уровнями изоляции..
То что я описал характерно для всех уровней (кроме совсем уж мусорного read uncommited).
Одна транзакция никогда не увидит незакомиченные изменения из другой транзакции, но всегда видит свои изменения.
Главное пойми что транзакция как таковая есть только на уровне JDBC connection. Именно здесь она открывается и закрывается.
EntitytManager (та же Session хибера) это обертка над JDBC connection. Он будет держать транзакцию открытой пока ты ее лично не закомитаешь, ну или в конце своей жизни (а она у него короткая) если не было ролбеков он сам все твои изменения закомитит за тебя.
Спринговый тест контекст как раз и эксплуатирует транзакции для того чтобы не вносить изменения в БД, откатывая все транзакции по завершению тестового метода. Можешь почитать про это поподробнее -> https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/testing.html#testing-tx
А так как на всех вменяемых уровнях изоляции другие транзакции не могут увидеть незакомиченные результаты из других транзакций то мы получаем систему где для каждого тестового метода БД выглядит одинаково, сколько бы параллельных транзакций не долбилось в пулл.
Получается, кэш сессии и есть кэш самой дб, который она может подтвердить, а может наоборот. Мне казалось, он что-то, не имеющее отношения к бд, вроде оберток на стримы. А транзакции более мелкие промежутки для коммитов, которых может быть несколько в сессии, получается.
Спасибо, анон, я наконец-то понял хотя если что поправьте.
За магией Спринга не особо понятно, когда именно открывается сессия, а когда транзакции. Вот, например, у меня Jpa репозиторий сам работает без аннотирования транзакцией должен работать, хотя я пока только тесты по нему писал, а в тесте я помещаю его в транзакцию. Получается, он проверяет открыта ли сессия и если да, то присоединяется к транзакции, а если нет, открывает и закрывает после операции? А тесты когда открывают сессию, одну для всех, или для каждого свою.
> Можешь почитать про это поподробнее
Завтра почитаю, спать хочется.
Я штук 30-40 решил, хоть и мало, но понимаю, что хуй бы сосал сейчас лиду, если б не это.
Знал бы - потратил бы времени больше чем на сраные алгоритмы.
Но вообще, соглашусь с другим аноном. Может так сложиться, что ты за год ничего сложнее обычных селектов не напишешь.
>>819415
>ебически сложный SQL как правило только в OLAP увидишь
Оказывается у этого и название есть.
>>820152
В целом ты прав. Но я немного не понял что ты имеешь в виду под кэшем бд. Вообще можешь читнуть суперкраткую выжимку про кровь и плоть JPA - кэш -> http://tomee.apache.org/jpa-concepts.html
> Получается, он проверяет открыта ли сессия и если да, то присоединяется к транзакции, а если нет, открывает и закрывает после операции?
Да это прям эссенция декларативного подхода к транзакциям в спринге. Текущее подключение к БД ( в виде JDBC Connection или JPA EntityManager (за которым прячется Session хибера)) создается и сохраняется в кармашку текущего треда. Когда по ходу выполнения программы ты пытаешься сделать запрос через JDBCtemplate или же прокированный EntityManager то внутри себя он сначала проверяет есть ли в текущем треде уже созданный Connection или EntityManager и если да то использует его.
> А тесты когда открывают сессию, одну для всех, или для каждого свою.
Конечно для каждого свою. Session (тот же EntityManager ) это короткоживущий объект который просто инкапсулирует JDBC connection. Для каждого треда он будет свой.
Почему-то меня так напрягает смотреть видео на ютубе.
Пи кран дом
Есть либа А, в ней используется либа Б версии 2.0 в скоупе implementation (gradle)
Если я поключу в свой проект либу А, у меня не будет либы Б в класспасе, как я понимаю
А если я подключу мавеном и А и Б версии 1.0
Не сломает ли это работу либы А?
есть react native но это медленно и на js. И еще есть flutter от гугла, он на дарте вообще и сырой, но следующая ос гугла для мобил будет именно на нем.
>А если я подключу мавеном и А и Б версии 1.0
Если ты имеешь в виду, что будет, если у тебя будет одна и та же зависимость дважды добавлена (один раз напрямую, а другой раз транзитивно) с разными версиями - то на практике, зависит от того, какой класс первым будет загружен класс лоадером, лучше делать exclusion для одной из версий, чтобы не было сюрпризов.
в мавене насколько я знаю будет использована версия, которая ближе всего в дереве зависимостей (т.е. та, которая не транзитивно подключается)
но
в моем случае, насколько я понимаю, gradle implementation scope не создает транзитивную зависимость
поэтому я пытаюсь понять, будет ли все работать в таком случае. т.е. в либе А будет работать либа Б_2.0, а у меня в проекте будет работать либа А и либа Б_1.0 (а под капотом в либе А будет Б_2.0)
блять как же сложно быть погреместиром
Нет, мавен положит обе библиотеки в класс пасс, то, какая загрузится - зависит от порядка загрузки файлов класс-лоадером.
Ок, я тут ошибся, но ситуация, когда у тебя две версии одной библиотеки попадают в класс пасс возможна.
>лучше делать exclusion для одной из версий, чтобы не было сюрпризов.
Лучше делать <dependencyManagement> секцию в корневом поме, тогда у всех будут гарантированно одинаковые версии, а в своих помах версии вообще можно будет не писать. И чтобы обновить библиотеку достаточно в одном месте поправить.
Всё порывает тряхнуть стариной да попробовать, как оно там. Но чёт хуй её знает.
Но живёт же вроде. Релизы выходят, FireMonkey их рекламируется, по рекламным постам там кросплатформенность ояебу, жаба сосёт с проглотом.
В реальности, говорят, всё грустнее. Вот хочется самому пощупать.
Вы скорее всего нахуй пошлете, но тем не менее.
Куда этот обосранныйлист пихать? В майн, контроллер или сюда на пике? В учебниках примеры с кнопками и лейблами.
Что ж, кто-то и на коболе пишет. Кобол живёт и здравствует.
я вот так написал:
if (isRegex) {
pattern = Pattern.compile(search);
} else {
pattern = Pattern.compile(search, Pattern.LITERAL);
}
Matcher matcher = pattern.matcher(text);
но что-то оно работает через раз как то непонятно.
Маленькие проекты для себя ещё можно делать, всякие круды десктопные для тёти Сраки, но что-то серьёзное уже через боль и страдания. Нет нормальных либ, нет сообщества, нет управления зависимостями, одна полуживая ORM, один полуживой тест-фреймворк. И куча багов. Эдакий .NET, если бы его поддерживал не майкрософт, а шарага из 10 человек.
учись правильно задавать вопросы желательно сначала гуглу
из того что ты высрал нихуя не понятно что ты пытаешься сделать и что у тебя не получается
Ну есть обсёрваблЛист, он засунут в листвью, он в инициалайз, инициалайз в документе ФХМЛ, он в майн. При запуске окна списка нифига не видно. Куда пихать слушателей для мультиполСелекшонМод, в метод в майне, в класс с контроллером или в этот метод, где он у меня?
Нафига создаешь новый листвью? фхмллодер создает его для тебя и сетает в анотированное @фхмл поле, в initialize просто берешь getItems() и пихаешь туда свои строки. Ну или itemsProperty без задней мысли байндишь на какой-нить ListProperty
На самом деле неплохой способ практиковаться в языковых конструкциях и ООП. События, потоки, обработчики, вот это всё. Так что пусть анон поковыряется.
а у тебя еще и initialize статический, ну пиздец.
>Или гугл так стал писать при любом логине без https?
Зис. В гугле стоит сниффер, который просто засёк передачу твоего пароля в открытом виде.
Лечится запуском хромого с флагом, отключающим такую проверку не помню каким.
Чуть больше года работаю в ДС в небольшом интеграторе, за это время неплохо поднялся по скилам, но получаю по-прежнему 100к, имея в сумме уже 2.5 лет на джаве. Поднимать собирались но ковид дал повод зажидиться. Немного пощупав рынок понимаю что могу найти за 150к+.
Трабл только в том что я уже в последних 5 местах работал где-то по году с чем-то, плюс тут комфортно и есть чему поучиться дальше.
Как считаете, стоит ли сейчас менять работу или лучше досидеть до двух лет? Оправдывает ли это разницу с рынком в 50к
Там задачка это свинговское приложение и этот isRegex активирует JCheckBox(галка не стоит - поиск без применения рулярок, стоит - с регулярками). Вот думаю я ошибся в свинге или в логике. В чем ошибки - мне лень объяснять всю эту гуи-шнягу. Вообще подход то правильный? Можно как то по другому?
250к это сеньор помидор
В целом вроде примерно правильный, но для случая с "без регулярок" я бы лучше String.indexOf(String str, int fromIndex) использовал, в цикле если надо. Но это лишь потому что я никогда не использовал флаг LITERAL. А если он работает именно так как я только что прочитал - просто парсит строку-паттерн как литерал, игнорируя спецсимволы - тогда действительно можно унифицированно на паттерне сделать, если не встретится подводных камней.
Поэтому, в целом подход правильный, но вот тебе два момента для раздумий:
1) Ты можешь легко разделить "свинг и логику", просто как консольное приложение запусти в psvm, где будет только Pattern и Matcher и тестируй чисто логику без гуя. Более продвинутый путь - тестовый фреймворк: JUnit, TestNG.
2) Опасно от юзера принимать и исполнять сырой regexp без валидаций, это подвержено атакам (DoS). Если у тебя не сервер, а просто desktop app, то максимум что юзер сможет это повесить только себя, а не сервер, но все равно обидно будет для тебя как разработчика. Для дальнейшей инфы гугли "regexp attack".
Мне просто еще кнопки-стрелки нужно там замутить по вхождениям в найденное, чтобы курсором на JTextArea ездить туда-сюда. Ну и я складываю в лист все пары начало вхождения/текст вхождения.
while (matcher.find()) {
isFound = true;
founds.add(new Pair(matcher.start(), matcher.group()));
}
Можно ли это без регулярок провернуть? Хотя можно наверно со счетчиком и циклом, надо попробовать, потому что что не так может быть в свинге я хз, глубоко в нем разбираться лень, да и тут не советуют. Если не поможет, тогда покурю немного свинг побольше.
Что с регулярками что-то не так я догадывался, если например ввести []emo, чтобы найти remove - в консольке сразу ошибки вылетают.
Вроде работает, сверяйся. И закомменченное тоже работает - без паттерна. Производительность не измерял.
Это количество вхождений паттерна "мурзил" (от слова "мурзилка") в последних восьми джава-тредах.
это даже в яндексе не спрашивают, чел. Я вот знаю алгоритм, знаю где используется, и даж, наверное напишу, но не за час, а, может, за день. Требовать такого на интервью - бесчинство. мимо 300к/сек
Курсы не являются гарантией твоего дальнейшего трудоустройства
А переворачивать тоже умеет?
>Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
а не пойти ли тебе самому нахуй? Дайте по джаве на русском учебник, английский в процессе буду учить. Пожалуйста.
Не нашёл на рутрекере книги для SE 9. Эта книга от Шилда сойдёт?
https://rutracker.org/forum/viewtopic.php?t=5715231
После неё что изучать? Спасибо.
спасибо ещё раз
а блин, думал 9 последняя. В любом случае, этот том для "подкованных" погромистов, с него начинать не стоит, думаю
>Дайте по джаве на русском учебник, английский в процессе буду учить
Это так не работает. Я читал SiCP и другие мурзилки в оригинале и одновременно учил язык.
Тяжело было, но сейчас худо-бедно читаю техническую литературу, so, блоги, даже на слух стал неплохо понимать. Осталось научиться писать и говорить.
g и h оба целые, значит, результат деления целый, значит, дробная часть отбрасывается.
спасибо, анон
А оно там красно-черное? А если в следующей версии джавы будет не красно-черное?
Спасибо что подсказал. Там на деле вся проблема была в правильном обновлении каретки при разных действиях в текстовой области в свинге.
Инфа 100%
О, то, что нужно, заебись, спасибо!
ну хз, как по мне стоило сначала выучить грамматику и 2-3 тысячи самых распространённых слов, так гораздо легче на самом деле.
Учить чтением/сериалом со словарём это не лёгкий способ, как это позиционируют некоторые.
я это в книжке прочитал, а как все знают, в умных книжках не врут
Впрочем, у меня в должностной инструкции было прописано, что я должен знать инглиш, но с моим B2 проблем не было.
@RequestMapping(value = "/", method = RequestMethod.POST)
а в параметрах функции
@RequestParam("fname") String fname
@RequestParam("lname") String lname
То эти данные возьмутся из параметра или тела запроса?
Из параметра:
http://localhost:8080/?fname=хуй&lname=пизда
Для выдёргивания данных из тела нужна аннотация @RequestBody.
А как тогда сформировать запрос с телом, а не параметром
<form method="POST" enctype="multipart/form-data"
action="/upload">
File to upload: <input type="file" name="file"><br /> Name: <input
type="text" name="name"><br /> <br /> <input type="submit"
value="Upload"> Press here to upload the file!
</form>
если эта форма, получается, отправляет через параметр?
В туториале данные принимаются через @RequestParam.
https://spring-projects.ru/guides/uploading-files/
Я не хочу, чтобы у меня ограничения на файлы накладывались.
Мб она все таки выдергивает их из тела, если не может найти в запросе?
В бд имеет смысл хранить только если это небольшие изображения плотно завязанные на какой-либо энтити (аватары, превью, фото). Всё что больше лучше всего хранить на диске, лучше всего вообще обернуть в отдельный сервис с собственным api.
Тебе бы почитать про HTTP запросы вообще и какой у них формат. Исторически параметры передавались либо GET запросом, прямо в строке:
2ch.hk/pr?abu=soset&admin=petuh
Или в теле POST запроса:
abu=soset&admin=petuh
Касательно того что POST запрос с типом multipart/form-data проходит автоматический парсинг с мапингом всех параметров это традиции еще времен сервлетов. Можешь почитать про это в документации https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/web.html#mvc-ann-requestparam
Ок, спасибо, анон.
Мне кто-то тут говорил, что даже небо, даже Аллаха нужно хранить в ДБ.
А потом CTO будет ебать этого хайанус-архитекта, за проебанные данные пользователей.
Говоришь это nosql-щикам, а они такие "ряяя транзакционных процессов в реальности не существует!".
public boolean haveSuchAmount(@Deprecated int amount) {
return inStock >= amount;
}
спс
Даже локальную переменную можно задепрекейтить. Хуй знает, зачем.
Обрезать List до первых 10 значений, если их будет меньше 10, то добавить new Object() вплоть до 10.
У тебя задача получить желаемый список (пусть и традиционными циклами) или во что бы то ни стало сделать это стримами, чтобы была нечитаемо, неподдерживаемо и по-борщехлёбски? Если где-то задачки решаешь, шли нахуй такие задачи и пиши цикл.
Не слушай его, корректно нельзя, только с внешними относительно стрима костылями. Чтобы выполнить то что тебе надо необходимо внутри стрима иметь представление об общем состоянии листа - количестве элементов, а этого без костылей не сделаешь. В общем, стримы - они не для этого. Даже самый простой случай "обрезать до 10 если больше" даст тебе новый лист, а не обрежет в текущем (collect(Collectors.toList()))
Сам факт использования стримов не повысит читаемость. Их нужно использовать в меру и с умом. Есть много кейсов, когда они что-то улучшают (обычно их предлагает сама idea), но далеко не всегда.
public static List<Object> make10(List<Object> objects) {
return Stream.concat(objects.stream(), Stream.generate(Object::new))
.limit(10)
.collect(Collectors.toList());
}
Ахуенно.
Всем привет
Хочу запилить приложение на мобилку. Простенькое, для личных целей (для целей локального коммьюнити, если точнее). Окончательно разочаровался найти какие-то видеоуроки по приложениям на котлине (изначально хотел делать на нем), потому прошу подсказать аксакалов: есть какие-то годные признанные отцами уроки по созданию android-приложения на java?
Мне простенькое запилить, особо в дебри погружаться не хочется, да и я не профессиональный программист.
> годные признанные отцами уроки
Есть кое-что получше — мурзилки!
- https://startandroid.ru/ru/uroki/vse-uroki-spiskom.html
- http://developer.alexanderklimov.ru/android/
А вообще, тебе в андроид-тред.
Спасибо!
Могут, но тут как правило больше на дизайн, чем синтаксис. Хотя есть уебаны с вопросами в стиле "что выдаст этот код" и ответами
- не скомпилируется
- выдаст ошибку
- напечатает хуй-пизда-джигурда
Никто, мы только роуты к контроллерам умеем писать.
>Стараюсь перейти на стримы, у них читаемость должна повышаться наоборот
Вкусовщина, же. На работе некоторые олды хуярят свои циклы везде, я норм читаю это. Сам делаю почти всё через стримы.
Мутабельность меня больше раздражает.
>>823055
Я больше скажу. Как-то искал ошибки в коде на js, хотя пришёл то я на другой язык устраиваться.
"Не ну а чё там синтаксис то схожий, ещё и динамикодрисня, ещё проще!"
Сам код был написан ещё в стиле "лаба1", стена текста.
Я просто сказал, что вся эта хуйня, сплошная, ошибка и антипаттерн. Теперь понимаю, как же мне повезло, что они не перезвонили.
Flyway проще, у Liquibase больше фич.
я сдавал OCA, сейчас готовлюсь к OCP
Хочу сделать такую штуку, чтобы списки задач можно было редактировать. Реально вообще?
Хз, как с откликами, мне просто сказали пройти для проекта и вернули деньги за сам экзамен
Вопросы там в принципе очень полезные, однако очень часто завернуты в ебейшие ситуации, поэтому придется шарить
Для OCA достаточно хорошо разобрать книгу для подготовки к этому экзу. У меня на подготовку к тесту ушло 2 дня. Есть еще моки, которые я настоятельно рекомендую купить и пройти, потому что вопросы там очень сильно отличаются от вопросов в книжке, и они более похожи на тестовые. OCP же намного серьезнее и без моков и тщательной подготовки ты не сдашь
Я плохо помню, что там в JavaFX, но я уверен, что там есть список, на элементы которого можно навесить какой-нибудь onClick и там уже открыть окошко редактирования твоего элемента. Поэтому конечно можно
Зачем это делать на JavaFX ? Зачем вообще на java писать настольное приложение ?
Чтобы помочь производителям ОЗУ повысить продажи, зачем же ещё.
Оставь ты это говно мамонта и двигай в сторону android или spring! Иначе, попусту время тратишь только.
По твоим вопросам складывается ощущение, что ты и на JavaFX нихуя не умеешь.
Возьми лучше что-нибудь реально более подходящее для десктопных приложений. C# + WPF или более новый UWP, например. Microsoft пишет хорошие туториалы для начинающих Oracle в этом смысле полное говно.
Ну или правда, перетекай на Андроид.
>>823513
Я и так хочу в андроид вкатиться, пытаюсь дома изучать. У меня рабочий комп андроид студио не тянет, поэтому ЯвуФХ ковыряю пока тут "работаю". Буду благодарен за туториалы по андроид, вдруг у кого есть?
И неужели я год яву дрочил чтобы в кресты вкатываться?
Сейчас вообще сижу ардуину насилую
Подрочил стандартную библиотеку. Сейчас дрочу Spring Boot. Потом думаю что-то свое без тутора написать на спринг буте. Потом на сервлетах. Потом какое-то REST приложение на спринге. Потом какую-нибудь имиджборду/форум написать и читнуть какую-то умную книженцию по джаве не для начинающих.
После всего этого можно будет начинать ходить по собеседованиям?
Если плюсом к этому знаешь SQL, алгоритмы и структуры данных и очевидные мавен с гитом, то да, можно.
Правда, где-то требуют ещё и ЕЕ-стек.
SQL знаю. Скоро в универе еще с МонгоДБ поработаем.
Из алгоритмов что надо знать? Кроме пузырька и квиксорта.
Мавен как надо знать? Что там кроме синтаксиса прописывания зависимостей знать еще надо? Гит кроме пуша что еще знать надо?
Из алгоритмов, вообще говоря, почти нечего сложного - уметь пройтись по дереву, например, или бинарный поиск. Руками писать на работе не понадобится, но на собесе могут спросить, типа, как у тебя с алгоритмизацией.
Мавен - модули и профили ещё.
Гит - основные фичи, то есть ветки, мерж, ребейз, черри-пик.пулл, реверт, ресет. Ещё почитать про git flow.
Спасибо, анон.
@
Познания преподов заканчиваются на ООП и vml
@
На программировании ставят всем 3 автоматом
@
Дают доххулиард ненужных предметов
@
По ним задания с профильных факультетов
@
Доебываются до каждой мелочи
@
...
@
На последнем курсе умеешь с ахуенной математической точностью собирать ПК, считать погрешность своего пердежа до 10^100 точности, знаешь философов 19 века и золотовалютный резерв России 2003 года. Можешь написать змейку, используя только битовые операции.
Мое имхо, но джун должен отлично знать javacore, и хоть немного понимать как происходит сетевой обмен.
Потому что знание как spring boot, так и hibernate будет плюсом, но особо роли не сыграет, так как ты еще не знаешь как это используется в коммерческой разработке. А твердое знание кора позволит тебе выбиться на фоне остальных, так как даже не все мидлы знают как банально работает многопоточка под капотом, как функционирует GC и какие виды есть, какой использовать лучше в различных ситуациях, не говоря уже о сокетах и тд.
>как банально работает многопоточка под капотом, как функционирует GC и какие виды есть, какой использовать лучше в различных ситуациях
Приведи пример, когда это нужно знать, пожалуйста.
Все зависит от выделенных ресурсов машины, на котором будет запускаться приложение. При скудных характеристиках рекомендуется использовать SerialGC, так как с возрастающим временем STW увеличивается время жизни программы, при возможных утечках.
На приложениях, которые чувствительны к скорости отклика, так же необходимо выбирать GC, так как ты никак не предскажешь когда все потоки уйдут в сон, чтобы вычистить память и сколько секунд это займет.
Не стоит недооценивать эту тему, особенно когда дело касается энтерпрайза и бабок.
Я не тот анон, но расскажу свой экспириенс. У нас лид ключами ставит приложениям кому G1, кому Parallel. Плюс логгирование GC в файлик (ага, и такое есть, погуглите). И вроде еще какие-то пара GC ключей, не помню. Я так сильно не разбирался, но видимо разбирался он.
Физкультуру забыл, нормативы - как будто тебя в спартанскую армию готовят, биться против персов.
ААА БЛЯДЬ НАХУЙ?
Вот такую хуйню. У тебя уровень восприятия окружающего мира как у ребенка трехлетнего.
Я не осилил, слишком высокий порог вхождения. Структура обычных нативных PE/ELF/COM мне показалась простой и понятной в сравнении с class-файлами.
List<Role> findByUsername(String username);
при
@ManyToOne
@JoinColumn(name = "username")
private User user;
?
Выкидывать говнохибернейт и переписывать на SQL, у которого таких проблем нет.
Учишься в шараге по специальности погроммист не в Рахе/СНГ
@
Тысяча и один курс по всему что можно придумать
@
На джавараше/хтмлакадеми/другой цыганщине учат в сто раз глубже
@
За то умеешь писать хелловорлды на реакте, андроиде, пхп, джаве, си, питоне, крестах, ассемблере и знаешь что такое архитектура Фон Неймана (и та глубже по википедии была изучена нежели на лекциях)
@
И знаешь что такое бит
Нихуя не понял, но очень интересно.
Лять, сначала подумал, что ВеснуБезопасность будет сложно подгонять под мой проект.
>Посему не UE - потому что люди у нас долбоёбы, XML туда же.
Не у нас, сокращать слова начинающиеся на ex как X это стандартная практика в США. Можно вспомнить BM PC/XT - eXtended Technology который был еще в 83 году выпущен.
Ну, бывают вузы куда хуже моего (ЛЭТИ), хотя не поступишь, не узнаешь.
Нет, хуй ты куда устроишься без корочки хотя бы нижневартовского заборостроительного института.
>Все зависит от выделенных ресурсов машины, на котором будет запускаться приложение
От бюджета скорее зависит.
Адекватные люди помнят, что их время стоит больше ещё одной плашки с памятью.
Корочка поможет, но как счастливый билет её расценивать не стоит.
Деревья на листочке покрутить придётся, как и 5 крудов в качестве тестовых сделать.
>Адекватные люди помнят, что их время стоит больше ещё одной плашки с памятью.
А опытные знают, что "плашка с памятью" в облаке стоит сотни, а то и тысячи баксов в месяц.
Я про это и пишу.
Хотя слышал, что в нормальных вузиках можно легко на стажировку устроиться. А помощь при первом трудоустройстве это всегда благо.
Может подкините какой-то годный гайд?
В гугле все что не искал - постоянно в каждой ссылке разные ответы, разные команды на одни и те же вещи, половина не работает, половина с ERROR как результат выполнения и т.д.
Какая-то гомоебля. Еще чуть-чуть и как макака через MySQL Workbench создавать таблицы буду
Алло, Йоба, это ты? Плохо слышно, говори громче!
Проще поставить виртуалку и там все разворачивать, потому что не представляю кейса опытной эксплуатации, где БД сидит на маке.
А так накатил на виртуалку любой линукс и из под нее стартанул, я на своем макбуке 19 года так делаю, полет нормальный.
Можно сразу накатить докер.
Ищем мурзилки и читаем.
По мере надобности конечно. Для получения нового апи обычно бывают официальные гайды, туториалы, мануалы, квикстарты и т.д, их как раз и читают все. А сухие доки - это просто справочник.
Ок.
ААА БЛЯДЬ НАХУЙ?
> Как чаще всего выглядит конфигурация в производственном проекте? Хмл или джава?
Чем больше код легаси, тем больше в нём хмл. Явных преимуществ у хмл-конфигов перед джавой нет (есть только надуманные), а недостатков предостаточно.
> Насколько сильно конфигурация расходится с шаблонами из документаций?
Бывает, что и расходится. В документации обычно описаны самые простые случаи, в реальности всё сложнее.
> Часто приходится ее ковырять? Часто приходится конфигурировать кишки спринга (писать самому сервлетные фильтры, например)?
Крайне редко. Это ядро приложения, его настраивают один раз и потом редко туда лезут.
> Часто приходится связывать бизнес логику со спрингом?
В бизнес-логике от спринга обычно только @Autowired и @Service.
Лан, запилию одну прохладную хотя и хуй она будет кому интересна.
В общем в генераторе байткода в цепочке if-else-if был пропущен один else и вместо выполнения одного блока выполнилось 2 и был сгенерирован лишний байткод. Дальше при старте код вылетал с лютейшей ошибкой валидатора из которой вообще ничего не было ясно. И сам код генератора не менялся и был сломан с самого начала, просто из-за другого бага он раньше не вызывался.
В общем пришлось брать javap и смотреть байткод и пытаться понять, что не так.
Понял, спасибо.
Всё равно придётся пересобирать итоговый еар-ник, передеплоивать и перезапускать приложение, и ещё не факт, что запустится, если опечатался в хмл.
Я студент. Сейчас смотрю туториалы от Гоши Дударя по спринг буту. Но там вся суть заключается в том, чтобы смотреть и повторять. Понимания особого почему, что, куда и как нет.
После туториала планирую читать сервлеты, после сервлетов напишу на них что-то и взять почитать книгу по спрингу.
А вы как со спрингом начинали работать?
>А вы как со спрингом начинали работать?
Прочитал пару мурзилок из блогов. Повторил то, что там было.
Сделал пару тестовых.
Потом спринг про пробежал по диагонали.
Вот уже полгода как работаю, но всё равно нихуя не понимаю. Когда-нибудь хочу всё таки выучить эту ебалу на уровне хотя бы 20% от уровня Борисова, может и пригодится когда-нибудь. Но и гуглить нужное по мере необходимости тоже несложно.
Ну а смысл в целях обучения наворачивать костыли, когда есть простое решение с кучей советов, которые ты можешь найти на просторах интернета, в отличии от накатывания бд на macos.
Такой хуйней никто не страдает, потому и разбирающихся людей в этом нет, как и банальной поддержки.
Да, мутили тоже что-то типа пост-процессора для логирования активности методов, помеченных аннотацией.
Основная ебля оказалась в банальной разнице объектных типов на уровне языка и на уровне jdk. Для jdk нет никакой разницы напишешь ты long, int, short, byte или boolean, для него это все long и потому производить битовые сдвиги буфера оказалось гемором, так как память он выделяет по другому. Но это еще ничего относительно массивов на уровне байткода.
Может наоборот сначала с сервлетами поработаешь, чтобы понимать что да как, а уже потом к спринту.
Потому что учить что-то, но не понимать для чего это и почему так - пустое трата времени, тебе все равно после изучения придется возвращаться к этому, чтобы подробнее разобрать.
А пока мог бы на сервлетах накатать вывод простой странички, потом потихоньку прикрутить web-фильтр для авторизации, а вот уже после этого смотреть про спринг - где, как и зачем он тебе в этом упрощает жизнь.
> Может наоборот сначала с сервлетами поработаешь, чтобы понимать что да как, а уже потом к спринту.
Стандартный пост про то, что так и до изучения ассемблера можно докатиться.
Пускай дрочится. Пару лет читает всё, готовится. Потом выгорит уже.
Меньше вкатышей = выше зарплата.
Да жирно будет.
>>825036
>>825115
>>825124
А как же запуск к разными контекстами без xml? Рассовываем фичи приложения по разным xml-кам, на вход в main передаем нужный список, строим бины только из переданных контекстов. Все контексты при этом лежат в джарнике, ничего пересобирать не надо, а приложение меняет конфигурацию параметрами запуска. Никогда не интересовался как это делать по-другому, и так работает. Иначе нужно в конфиге делать фичам true/false, но бины все равно будут инициализироваться, значит их надо делать максимально ленивыми чтобы ускорить запуск, а это усложнение, синхронизация и тд.
> разными контекстами без xml
А, так это ты. Я сразу так и подумал.
Для настолько странной задачи в спринге есть профили.
@Configuration @Profile("profile1") public class Feature1 { ... }
@Configuration @Profile("profile2") public class Feature2 { ... }
И при запуске указывается ключик с нужными профилями: -Dspring.profiles.active='profile1,profile2'. И бины из неупомянутых профилей инициализироваться не будут.
Жиза, блять. Мне иногда помогает только удалить папку .idea и импортнуть проект заново.
Переписал в другом порядке, заработало. Скурвились джетбрейнсы, мда.
Спасибо, покажу нашему главному, хотя вряд ли он одобрит рефактор на аннотации, наверное скажет "наглядность потеряется, переезжать на пятерку" и т.д.
Как проверить строку на соответствие какого-нибудь из шаблонов?
Типа такого
boolean cont = string.contains{"par1", "par2"};
.matches("(par1|par2|par3)")
Но тут есть подводные, если шаблон будет содержать точки, скобки или еще что такое - то пойдет по бороде. Лучше прогнать несколько раз contains().
Хз, мне в свое время хед ферст вообще не зашел. Дебилоидная система повествования
http://localhost:8080/masters/save/{"id":"fd28657d-2c2d-4f6e-adc3-22d1efb21f9f","calendar":{"bookedDates":{}},"fullName":"basil","dailyPayment":20.0,"speciality":"MECHANIC"}
Вылетает ошибка com.google.gson.JsonSyntaxException: java.io.EOFException: End of input at line 1 column 112 path $.dailyPayment - если кавычек вокруг дабла нет, если поставить,
то
com.google.gson.stream.MalformedJsonException: Unterminated string at line 1 column 113 path $.dailyPayment
Сигнатура метода:
@PutMapping("save/{json}")
public void saveMaster(@PathVariable String json)
ЧЯДНТ?
Интересное api, где json суётся в url. Только не говори, что сам до такого додумался.
Через тело запроса, см. @RequestBody. URL в первую очередь для идентификации ресурса, а не передачи данных. К тому же с ростом размера json можно рано или поздно столкнуться с ограничением на длину url (да, оно есть, и не такое уж и недостижимое, всего лишь ~2К символов).
Sir,yes,sir!
Что мне можно дальше учить? Английский?
Спасибо
Каталог называл C://files C:\\files C:/files/
Байты не нулевые
Название файла правильное
Файлов в папке нет
Менял путь на документы
Эта хуйня еще утром, блять, работала, а теперь я ебусь с ней уже час, не понимаю, почему нихуя не сохраняет
File dir = new File("C:/files");
if (!dir.exists()) dir.mkdir();
File file = new File(dir, imgName);
file.createNewFile();
BufferedOutputStream stream =
new BufferedOutputStream(new FileOutputStream(file));
stream.write(bytes);
stream.close();
В конструкторе было
File dir = new File("C:/files");
if (!dir.exists()) dir.mkdir();
вместо
dir = new File("C:/files");
Дано:
public <T> Stream<T> function(int x1, int x2, int y1, int y2) {
final ArrayList<T> list = new ArrayList<>();
for (int y = y1; y < y2; y++) {
for (int x = x1; x < x2; x++) {
list.add(getObject(x, y));
}
}
return list.stream();
}
То есть нам нужно получить стрим из объектов класса T для диапазона заданного четырьмя параметрами по два на каждую ось. И есть метод который возвращает нужный объект по координатам.
В целом всё работает. Однако очень хочется убрать ArrayList так-как метод вызывается в нескольких потоках и очень часто.
ты зачем ебанные табуляции пожрал пидор?
Можно в Stream.generate() засунуть свой Supplier, который будет возвращать следующий элемент требованию, что идеально вписывается в идеологию ленивости стримов, а потом накидывать limit и возвращать.
public static <T> Stream<T> function(int x1, int x2, int y1, int y2, BiFunction<Integer, Integer, T> converter) {
return IntStream.range(y1, y2)
.mapToObj(y -> IntStream.range(x1, x2).mapToObj(x -> converter.apply(x, y)))
.flatMap(Function.identity());
}
Правда я не уверен, что это сильно лучше того же ArrayList с точки зрения перформанса.
И что ? Тот алгоритм и так корректно все выводил в файл, а эти строчки несущественны, чтобы файл не создавался.
Вместо эксепшена он создавал файлы в resources каталоге
И ещё может в спринге есть какие то более подходящие способы сделать такое не через аспекты?
Пиши свой собственный BeanPostProcessor как завещал нам Женя -> https://www.youtube.com/watch?v=BmBr5diz8WA
Убил сегодня час времени, пока копался в стектрейсе говнохибернейта и пытался понять, что не так. И хибернейт топчиком не считаю. Даже не хочу вспоминать, как я полгода назад пытался вникнуть в JQL-запрос на 500 строчек, который ещё и не запустить просто так в консольке с ораклом. В общем, все мнения имеют право на жизнь.
>>826984
Типа такого, но хуй знает.
@After("execution(YourType yourpackage.⚹.⚹(..)) && @annotation(yourannotation)")
>Структур данных?
Это имеются в виду коллекции и примитивные типы?
А алгоритмы это в каком объеме? Весь Кнут? И зачем, ведь все реализовано в библиотеках?
> алгоритмов
Сможешь написать пузырёк и бинарный поиск на листочке, сможешь устно рассказать про квиксорт и мерж сорт.
> структур данных
Сможешь рассказать про самую простую хеш-таблицу, про множество, про списки, деревья, основные способы обхода деревьев.
>А алгоритмы это в каком объеме? Весь Кнут? И зачем, ведь все реализовано в библиотеках?
Ну все правила дорожного движения тоже написаны в правилах дорожного движения зачем их учить-то?
Например вопрос, что такое автовайред и апплкейшн контекст
Именно поэтому я и не отвечаю на вопросы.
> Что такое бэльдунг?
Вот этот сайт: https://www.baeldung.com/
Я хуй знает, что там на главной, и как на нём что-то искать, обычно гуглишь %фича_нейм% из спринга, и одной из первой ссылок видишь ссылку туда со статьёй-введением. Это как стековерфлоу.
> Что такое мурзилки?
Так здесь называют любые неофициальные учебные материалы по технологиям, когда ты вместо того, чтобы открыть документацию, гуглишь статьи разной степени хуёвости, возможно, даже на русском, и читаешь. Все понимают, что это не лучший подход к обучению, но зато можно быстро вникнуть и сразу же начать юзать. Эталонная мурзилка - metanit.com, но по спрингу там ничего нет.
->>827493
Слабо - это насколько?
>Слабо - это насколько?
Я смотрел ютуб, и повторял за неким специалистом. Он после каждого действия повторяет, вникать не надо, вникать не надо. Вот спринг секьюрети, хуяк, хуяк, все работает, вникать не надо. Но как что-то сделать самому я пока не понимаю.
Он имеет в виду, что вникать не надо прямо сейчас, пока он объясняет пример, потому что если вникать, то там всё очень сложно в сравнении с тем же Spring MVC. И тем более сложно найти такой материал, где объяснялось бы для новичков, но полностью и исчерпывающе.
Ну и способы изучения у всех разные, кому-то хватает официальных доков, кто-то читает талмуды pro spring или spring in action , а кто-то - мурзилки.
ОБычно, когда мурзилок недостаточно, я изучаю что-то путём взятия минимально работающего примера фичи и последующих экспериментов с не: что будет, если поменять порядок вызовов методов, гугление, почему не работает, зачем нужен этот аргумент, как сделать то-то и т.д.
Часть первая: Spin Lock.
Код: https://codeshare.io/5wBl9j
Механизм действия: По сути в начале пытаемся захватить лочку в non-blocking моде (потому что AtomicBoolean), делая максимум maxSpins попыток и если нам это не удается -- ложимся спать, чтобы не тратить такты процессора.
Где использовать: в критических секциях, которые исполняются редко, а значит первые несколько спинов будут успешными и мы не пользуемся дорогостоящим (вроде как) syncronized.
Предвижу пару десятков обучающих постов и несколько токсичных ответов на них.
теорию всю понял и шарю, но инога делаю дурацкие ошибки которые уйдут с практикой
дайте практики
рандомпик
Задачки или проектик? В любом случае, см. ссылки в шапке.
Ну вот так.
Потому что херочка сделает вывод, что ты ебанутый ноулайфер, и не перезвонит. Можно форум или социалочку. Но не борду.
Не хочется тебе, не выдумывай.
Но вот кароч у меня есть массив с чарами и мне нужно каждый чар написать н раз и хуйнуть это все в одну переменную
Хелпаните, в этом вашем джаве вообще крыша едет
> strToArray[ i ]⚹n
Джава - не питон, здесь нет такого синтаксиса. Хуярь StringBuilder и вложенный цикл от 0 до n. Ну или местые streamapi-наркоманы что-нибудь подскажут.
Ты немного путаешь, если у тебя параметризованный класс -- ты не можешь определить какой у него реально тип, если тебе просто дать его класс (то есть скажем List.class). У него действительно все стерто. Но если у тебя есть класс как в примере выше, у которого полем List<String>, то эта инфа есть в классе Test.class. Но опять - таки это относится не к List.class, а именно к Test.class.
В 11 джаве есть str.repeat
Крч я заебался дайте какой нибудь годный курс/канал, желательно на русском, чтоб можно было фоном ставить, чтоб там пошагово создается спринг приложуха с полным стеком сопутствующих технологий с нуля на практике, чтоб вот прям показывал как оно делается и говорил на что обратить внимание, ибо книги уже доебали их блять читаешь -читаешь и через месяц все, хз шо там вообще было написано, ибо блять пока прочитал книгу/документацию по одной технологии, то за время чтения про другую нахуй забываешь я три месяца назад въебал книжечку про гит и был гуру гита, а ща опять гуглю примитивные команды я вот вообще хз нахуй гит нужен, если в одно рыло делать, а практика методом повторения за кем-то, вроде бы топ
Как и где найти и скачать Javafx для jdk15? Какой-то бесконечный пердолинг с этим
Error: JavaFX runtime components are missing, and are required to run this application
Ещё и эту хуету выдаёт, когда код скомпилировать пытаюсь
чойта я не догнал, если у тебя получится сделать cas-операцию, то у тебя никакого действия не последует? Зачем такое нужно?
Ну это мне нихуя не помогло, всё ещё хз что делать и куда ставить
IDE JCreator кстати, поставил бы с радостью другое, но оно слишком зависает
public static String repeat(char[] chars, Integer n) {
return Stream.of(chars)
.flatMap(x-> Stream.iterate(x, y->y).limit(n))
.map(String::valueOf)
.collect(Collectors.joining());
}
Двач, помоги программисту
> но оно слишком зависает
Это толстый намёк, почему категорически нельзя писать гуй на джаве.
На c++ проблем не было, просто подскажите что и как делать.
Если можно, закиньте на файлообменник содержимое папки lib или самые нужные javaFX файлы
Есть тут люди из Люксофта или собеседовавшиеся туда? Сколько там нахуй кругов ада из интервью надо пройти, чтобы устроиться? Прошёл первый, все ок. Прошёл второй, уже с техлидом проекта, все ок. А щас ещё третий какой-то проходить с ПМом и ещё каким-то директором проекта. Что за нахуй блять. Мне потом со всеми ребятами на проекте собес проходить?! Поясните хоть, что за третье собеседование, оно вводное или опять ебать будут вопросами?
А если нет? Я просто открыл IDE и написал код. Попытка скомпилировать, как видишь, привела к этому
>если у тебя получится сделать cas-операцию, то у тебя никакого действия не последует? Зачем такое нужно?
Ну, смотри.
1. У лока есть флаг, если он true, то лок захвачен каким-то потоком. Соответственно, если false, то лок свободен.
2. Если флаг false, CAS-операция ставит его в true. Возвращает при этом true. Это значит, что мы только что захватили лок.
3. Если в флаге true, CAS не выполняется и возвращает false. Это значит, что лок уже захвачен => надо подождать. Для чего и выполняется while: это тупо цикл ожидания освобождения блокировки, ждём и проверяем. Когда лок освободится, CAS в очередной итерации его захватит и вернёт true.
4. Секция syncronized нужна, чтобы не грузить процессор бесконечным циклом. После достижения "таймаута" (максимального количества спинов) блокировка переходит на системный механизм wait/notify.
Анон, а нахуя ты поставил самый последний jdk ? Ты в курсе, что большинство фреймворков еще не перешли на него и соответственно поддержка уровня коленки.
Годный пост
>которое вам все равно не пригодится в работе
Ну хоть для собесов пригодится, лол.
LTS версии, в данный момент это 8 и 11. Можешь со спокойной душой ставить jdk 11 и быть уверенным, что не словишь никаких непредвиденных ошибок и у фреймворков будет фулл-супорт.
Спасибо! Надеюсь поможет
Ты посмотри внимательно в сниппет, там у тебя while два раза, это с толку сбивает
ок, понял, зачем там второй while; на практике у mutex-а в линуксе, который вызывается synchronyzed-ом как раз такая логика - он сначала крутит спин чуть чуть, а если не выходит - засыпает.
Ну тут все логично, хотя и не совсем.
>на практике у mutex-а в линуксе, который вызывается synchronyzed-ом как раз такая логика
Это правильно, чтобы не тратить ресурсы на дорогую остановку и запуск потока. Но все равно есть такой момент, что вызов системных функций дороже чем крутить спиннер внутри приложения
Потому что фронтендеры решили поднять себе зарплаты и стать frontend developer-ами вместо просто верстальщиков, и хуякты с вуями этому больше способствуют, чем жквери.
Очень интересно, конечно. Ну так че мне брать-то? Ангуляр для упрощения разработки на жс, а дальше? Чем мне реально будут полезны эти ваши бутстрапы, реакты, вью и тд?
Ангуляр сложнее, бери реакт.
В SPA-фреймворках всякие фичи наподобие виртуального DOM и компонентного подхода. Но это всё для больших приложений, и если у тебя только пара страниц, то толку мало будет. В js-треде больше расскажут.
СХУЯЛИ, РАЗВЕ ДЖАВА И ЖОПАСКРИПТ - ЭТО РАЗНЫЕ ЯЗЫКИ ф? ? ?
В жс-треде страшно, лучше здесь поспрашиваю. Хорошо, с ангуляром и реактом понятно. Можешь в двух словах сказать, чем будет полезен бутстрап и жквери, или они так же заменяемы ангуляром?
Да не, там весело. Заходишь и прямо чувствуешь своё интеллектуальное превосходство.
Бутстрап - это просто набор готовых стилей и анимаций, чтобы меньше писать css. Бутстрап под капотом местами тоже юзает жквери, и есть версия бутстрапа для реакта. Чистый жквери плох тем, что с ростом проекта код превращается в неподдержиаемую лапшу из коллбеков и прочей хуиты.
>>828734
Будем обсуждать js. Кто-то же обсуждает javafx, которая тоже в широком смысле фронтенд.
Все, вроде разобрался, благодарю. До недавнего времени вообще даже html и css не знал, и вот пришло время вкатываться в это вот все.
В лоб пробовал решать, разбивать на подзадачи?
Результирующий массив будет по длине = текущий n, значит
шаг 1: найти длину результирующего массива
int len = arr.length n;
шаг 2: создать новый массив с этой вычисленной длиной
char[] arr2 = new char[len];
шаг 3: заполнить новый массив данными
цикл в цикле напишешь сам - внешний по arr, внутренний по n, индекс стандартный: кол-во полных блоков * длина блока + позиция в текущем непоном блоке
Спойлеры не нужны.
}{отя бы для программерской доски выключите разметку по звездочкам, каждый раз, сука, аж трясет.
>>828022
В лоб пробовал решать, разбивать на подзадачи?
Результирующий массив будет по длине = текущий x n, значит
шаг 1: найти длину результирующего массива
int len = arr.length x n;
шаг 2: создать новый массив с этой новой длиной
char[] arr2 = new char[len];
шаг 3: заполнить новый массив данными
цикл в цикле напишешь сам - внешний по arr, внутренний по n, индекс стандартный: кол-во полных блоков x длина блока + позиция в текущем неполном блоке
>Да не, там весело. Заходишь и прямо чувствуешь своё интеллектуальное превосходство.
А я как-то раз зашел к ним и спросил где у ноды такой же менеджер как мавен, чтоб не в каждом проекте полная копия зависимостей, чтоб кешировались локально в папочки по подверсиям... Страшно вспомнинать что там началось, сколько говна выхватил. В итоге сам потом нашел pnpm, максимально похоже хотя все еще не совсем то.
Вроде, и в обычном npm можно установить зависимости "глобально". Но у них так не принято, зато принято засорять каждый проект одним и тем же node_modules на полгигабайта и каждый раз качать всё заново. Ещё и удаляется по 10 минут, ведь аналог жарников они так и не изобрели и хранят свору js-файлов напрямую, а операции с отдельными файлами медленные.
Более-менее похоже. Тоже акцент не на завалить, а на общение. Те же вопросы по основным принципам и кору. Впрочем, везде по-разному, где-то за гит могут спросить, где-то за мавен.
>и в обычном npm можно установить зависимости "глобально"
Деталей не вспомню, но с этим вариантом что-то тоже не то. А pnpm максимально похож тем что с одной стороны, имеет единый репо, с другой стороны, делает в их принятом стиле - node_modules с ворохом файлов внутри в каждом проекте, но хак в том что это все легковесные хардлинки (поэтому репо должен быть на каждом винте где есть проект, но обычно это всего один винт).
Я не совсем понимаю, что от меня хотят. Я должен на Java Spring сделать сервер обработки и лицевое приложение для аутентификации? Или что? Помогите, пожалуйста.
Разумно, переспросил, но всё таки.
> frame work
> on front
> need to have
> all is
Зачем ты к индусам собеседуешься? Но да ладно.
Юзер будет вместо браузера запускать гуёвое приложение на электроне, которое будет дёргать спринговую апишку. А RBAC - гугл подсказывает это: https://en.wikipedia.org/wiki/Role-based_access_control - то есть у каждого юзера есть список ролей (обычный юзер, админ, рид-онли юзер и прочее, в ВеснаБезопасность есть, к примеру. аннотация @Secured({список ролей}), которая вешается на контроллеры и не пускает юзеров без нужной роли).
О, теперь понятнее стало. Спасибо!
Бротишь, возьми да запусти без второго while-а, у тебя ассерт упадет
Попробуй додуматься сам, а я в спойлере поясю почему так произойдет:
Второй while нужен, потому что без него может произойти такая ситуация: Скажем поток A покрутился в цикле и не получив лочку пошел спать. Для этого он захватил монитор (this). Теперь представь что другой поток B, который держал лочку вызывает notify. Наш спящий поток A просыпается и тут шедулер ОС переключается на какой - то другой поток C. Теперь он сразу захватывает лок (compareAndSet вернет true сразу, потому что поток B установил его в false) и ОС поток С сразу выгружает. Теперь поток A просыпается и думает раз уж он проснулся -- значит он теперь держит лочку. В то же время поток C как только он проснется -- тоже будет так думать и тут начнутся все странности параллельных программ. Вот как - то так.
Код: https://codeshare.io/5eB3Ax
Несмотря на простоту, есть несколько моментов, на которые стоит обратить внимание. Первое -- это лочка. Она в данном случае обязательна, так как защищает общую переменную done. Если бы ее не было, то был бы возможен такой баг:
1) parent запускается первым, проверяет флаг done, видит, что он false и прямо перед тем, как лечь спать -- ОС выгружает его и запускает child-а
2) child отрабатывает до самого конца, вызывает notify(), но будить некого, потому что parent был выгружен аккурат перед тем, как лечь спать
3) parent заснул навечно
С лочкой же такая ситуация не произойдет, так как после того, как ОС выгрузит parent-а перед тем, как он ляжет спать, child не сможет войти в критическую секцию и вызвать notify на пустом месте.
Второй момент -- это цикл while. В критических секциях всегда лучше перестраховаться и использовать именно while (это можно сказать идиома). Хотя этом простом примере на самом деле можно использовать if, в шедулерах ОС бывают такие штуки, как spurious wakeups. То есть когда поток ушел спать, его вроде как никто не будил, но ОС решила его разбудить. Хоть я прогнал тест много раз и мне так и не удалось этого наблюдать (возможно в жабе такого не бывает, хз)
Он прав, два вложенных спина сбивают с толку. Проще было сделать 2 последовательных - код читался бы намного легче.
Ну и в целом лок сделан некорректно, начиная с того что его может разлочить любой, а не только владелец и разлочить можно даже не залочив предварительно.
Ну типо хотел на чистой джаве показать)
>>829097
Да, это такой дизайн у джавовских мониторов, защищающий от подобного рода багов. Но например в POSIX-овских кондишенах ничто не мешает тебе вызвать на нем signal (notify в терминах джавы), поэтому хотел на этом внимаение акцентировать
>>829176
>Он прав, два вложенных спина сбивают с толку. Проще было сделать 2 последовательных - код читался бы намного легче.
Согласен, да)
>Ну и в целом лок сделан некорректно, начиная с того что его может разлочить любой, а не только владелец и разлочить можно даже не залочив предварительно.
Да, по-хорошему нужно еще сохранять айдишник треда в лочке и проверять, не подумал чет об этом
>Да, по-хорошему нужно еще сохранять айдишник треда в лочке и проверять, не подумал чет об этом
Можно сам тред в AtomicReference.
Ты лучше у HR спроси, а не у случайного встречного
Вопрос бесмысленный, т.к. отделы сами могут решать как им собеседовать людей. Но обычно с ПМ это последнее.
Сап. Полуркай общую схему найма на сайте люкса. На деле сначала идёт технический скрининг, потом всё на усмотрение проекта: это может быть как одно "менеджерское" интервью (самый простой случай), так и несколько интервью, сначала со стороны проекта, потом на стороне заказчика. Короче, да, адок при желании могут устроить.
>Поясните хоть, что за третье собеседование, оно вводное или опять ебать будут вопросами?
Да не должны вроде. В конце концов, время тех. спецов дорогое и дефицитное.
Схуяли бля?
Мне на полном серьёзе это пришло в голову, но не думаю, что ему реально это нужно.
Бин - сущность, которую видит спринг.
"Эй весна, я сделал хуйню, смотри как она выглядит. Такие-то поля, такие-то параметры, вот так это надо собирать."
Автосвязывание - ты как бы говоришь весне, что где-то в области видимости есть бин, который можно использовать в качестве параметра.
"Эй весна, я сделал хуйню, но чтоб она работала, тебе надо подставить куда надо вот такие параметры. Найдёшь их по интерфейсу, названию, ну разберёшься короче."
Это делается, чтоб руками не собирать каждый раз объекты.
Всё спринговое приложение представляет собой свалку объектов, которые взаимодействуют друг с другом. Свалка - это так называемые контекст приложения, а бины - объекты, которыми управляет контекст. У каждого бина могут быть зависимости, то есть другие бины, которые нужны этому бину. Ты даёшь спрингу конфигурацию, в которой написано, что кому нужно, а спринг после запуска сам разбирается, в каком порядке создавать бины, совать их в контекст и давать ссылки на бины другим бинам, эта идея называется dependency injection. Ну а через autowired в каком-то бине можно указать зависимость, и спринг сам его найдёт по типу или другим параметрам и проинициализирует ссылку.
Писать интеграционные тесты, они свалятся во время сборки. Они тоже поднимают спринговый контекст.
См. интерфейс BeanPostProcessor. Плохого ничего нет, но нужно пиздец как редко, и если кажется, что возникла необходимость, нужно ещё раз подумать.
Над контроллером не надо вешать @Component, потому что уже есть @Controller. @Controller, @Service и @Repository ведут себя как @Component.
@Component вешается на реализацию интерфейса, а не на сам интерфейс, поэтому перед public interface и нет аннотации.
Ну а реализацию репозитория не видно, Spring Data JPA под капотом генерирует её само.
И ещё: тут один тролль писал, что репозиторий не будет работать, мол, не реализован интерфейс. Если придёт, не слушай его, это не так.
for (int i = 0; i < arr.length ; i++) {
if (arr % 2 == 1)
}
Тут сказано, что ты пидор.
Понимаю что в жабу с такими приколами не лезут, но мне нужно получить объект ПО ССЫЛКЕ (в подчёркнутых местах) уже послали на identityHashCode но так как он не гарантирует уникальность (а объектов Tag ОЧЕНЬ много), то он идёт нахуй.
Но проблема таки осталась.
Нужно как-то получать ссылку на объект. Как это сделать то блять?
жабаист не может понять концепцию ссылок лол
Мне нужно присваивать переменной не копию объекта а сам объект.
По коду не видно что я пытаюсь добраться "гетами" до чего-то?
Получаем путь, разделяем его на кусочки, потом каждым кусочком пытаемся гетнуть другой тэг который лежит внутри начального тэга.
обосрался обтекай
Сап, поясните за JetBrains Runtime. Он для чего? Желательно ли его ставить с установкой Идеи?
Я не ебу.
>Сап, поясните за JetBrains Runtime. Он для чего? Желательно ли его ставить с установкой Идеи?
Программа для установки и обновления других приложений жидюрейнс.
Стоп, я напиздел, перепутал с Toolbox App.
А JetBrains Runtime это просто сборка OpenJDK от жидбейнс https://confluence.jetbrains.com/display/JBR/JetBrains+Runtime
После того как оракл анально огородил свою ЖДК жидбрейнс пилят свою сборку вернее бел лабс им пилит. И предлагают тебе поставить версию этой ждк в качестве системной.
хуй ты вкатишься, дебил, если ты даже гуглом пользоваться не умеешь
т.е. я могу ее поставить и продавать софт образно говоря? И никаких лицензий не надо, типа Оракловских?
Есть ещё AdoptOpenJDK и много других сборок с разными условиями использования. Но самые анальные у оракла.
мимо
попробую поставить JB сборку, для начала. Посмотреть хоть.
С геймв дева ~5 лет коммерческого а то тут зп вообще маленькие и скилл не растет почти реально вкатиться в Java EE хотя бы на мидла, там писал на backend Java но без спринга
фикс backend на Java
Очевидно да.
Нагуглил, но чета не понял почему параметры идут прямо перед именем метода.
Кормена купи себе, даун, если уж ты так хочешь потратить деньги.
Но вообще, если тебе нужна причина заниматься ("я же деньги потратил") или наставник, который бы тебя подгонял - то лучше даже не пытайся.
Я другой нюфаня, но вот у меня не очень выходит заниматься только по книжкам. Без упражнений и чтобы их кто-то проверял очень многое непонятно. Как это преодолевать?
Найди другое занятие, где не надо будет себя заставлять, чтобы учиться.
>Как это преодолевать
А дальше ты как это будешь ПРЕОДОЛЕВАТЬ? Превозмогатор, мамкин, силы воли доселе невиданной.
Или ты думаешь сидя в офисе писать такие же классы и методы будет дохуя интересней?
Дибил, я не про преодолевание и не про интерес. Я про упражнения, задачи. Без них не ясны многие темы. А они если в учебниках и есть, то никто их не проверит, не написал ли ты говно.
Хуле раскукареклся? Наличие ментора — охуенный бонус к качеству обучения. Круто, когда у тебя друх\родственник шарят и ты можешь спрашивать без лишнего оверхеда. Когда я учил жабу, с радостью бы платил чувачку за возможность показать ему код и пострашивать ответики.
>никто их не проверит, не написал ли ты говно
Сам проверь. Особенно круто посмотреть какое говно ты писал спустя время. И попробовать написать нормально.
Но только тут снова, тебе самому должно быть это нужно.
>>833768
>с радостью бы платил чувачку за возможность показать ему код и пострашивать ответики
Вдумайся в то, что ты написал.
Где-то есть чувак, который явно знает больше тебя, притом для нормального результата он должен значительно превосходить твой уровень. И вот этот ментор будет сидеть и за спасибо читать твою хуйню, которую ты высрал без использования паттернов, без всякого кодстайла, просто, блядь, лаба1, стена кода на несколько страниц.
Зачем ему это?
Это твой тимлид, ему за это платят деньги, код ревью входит в его обязанности.
Но тебя то будет учить какая-то рандом-манька, которая сама то и не знает нихуя. Он и пошёл эти курсы для вкатышей вести, потому что в нормальное айти не смог.
>Это твой тимлид
Ебобо, штоле? Чел только начинает вкатываться. А учитывая огромный объем жаба домейна, лучше иметь чувачка, который поможет не охуеть от всего этого. Круто, когда тебе легко дается, но многим нужно немного помощи. И круто, если у тебя есть кого доёбывть. Что я хочу сказать: если он хочет потратить деньги, то мать его ёб, пусть тратит.
Как это можно сделать?
Слышал что-то про шейдинг зависимостей, но не могу что-то толковое нагуглить
Это диаметр диляды который тебе надо засунуть себе в жопу и тогда все получится!
В общем: зависимости, шейдинг - это все хуета времени компиляции. В рантайме у тебя один классас где и лежат классы. Можно туда положить несколько разных версий, но загрузится один, если они не совместимы - то будут проблемы.
Единственный вариант - это кастомный класслоадер для библиотеки, у которого будут свои версии библиотек. Но это не так просто реализовать. Я бы сильно подумал, надо ли.
Ну или все перевести на OSGI - там все автоматом делается, но перевести все на OSGI это прям задача.
как я понял когда шейдишь депенденси у тебя может быть два класса в класспасе - с разными FKN (пакет другой типа будет, как я понял)
а может я долбаеб.
Понятно.
Да, в принципе такая штука есть https://maven.apache.org/plugins/maven-shade-plugin/examples/class-relocation.html
Понятно, что если там есть йоба логика по загрузке классов - типа из имени пакета и еще чего-то конструировать имя класса - то это работать не будет.
Нет. Я имею в виду что-то типа & в генериках, или возможность использования класс в for при реализации интерфейса Iterable.
Можно глянуть доки по Apache Commons и Guava, вдруг появятся идеи. Но там, наверное, есть вообще всё, что только можно.
> & в генериках
Тут вряд ли можно придумать что-то лаконичнее, чем:
public interface C extends A, B { }
public <C> void myMethod(C c) { ... }
> класс в for при реализации интерфейса Iterable
Разве что Class.
var items = Arrays.asList(String.class, Integer.class);
for (var clazz : items) { ... }
крч, у меня есть массив книг.
private ArrayList<Book> bookMassiv = new ArrayList<>();
заполняю его объектами книг:
public Book(String id, String title, String author, String summary) {
this.id = id;
this.title = title;
this.author = author;
this.summary = summary;
}
переопредлелил toString
@Override
public String toString(){
return ("id кинги: " + id + '\n' + "название: " + title+ '\n' + "автор: " + author+" " + '\n'+ "содержание: " +summary);
}
}
и потом хочу записать содержимое массива в файл
public void method() throws FileNotFoundException {
BookManager bm = new BookManager();
File file = new File("text.txt");
PrintWriter pw = new PrintWriter(file);
pw.println(bm.getBookMassiv());
pw.close();
ну параметры в метод подаю с клавы (пик релейтед)
но когда записываю в файл этот массив, то у меня записывается не содержание массива (как выводится в консоль), а просто две скобки квадратные: []
Поясните, плез
в чем я неправ?
крч, у меня есть массив книг.
private ArrayList<Book> bookMassiv = new ArrayList<>();
заполняю его объектами книг:
public Book(String id, String title, String author, String summary) {
this.id = id;
this.title = title;
this.author = author;
this.summary = summary;
}
переопредлелил toString
@Override
public String toString(){
return ("id кинги: " + id + '\n' + "название: " + title+ '\n' + "автор: " + author+" " + '\n'+ "содержание: " +summary);
}
}
и потом хочу записать содержимое массива в файл
public void method() throws FileNotFoundException {
BookManager bm = new BookManager();
File file = new File("text.txt");
PrintWriter pw = new PrintWriter(file);
pw.println(bm.getBookMassiv());
pw.close();
ну параметры в метод подаю с клавы (пик релейтед)
но когда записываю в файл этот массив, то у меня записывается не содержание массива (как выводится в консоль), а просто две скобки квадратные: []
Поясните, плез
в чем я неправ?
ну есть класс Book (вон он выше)
есть класс BookManager
вводом с клавы заполняю книги:
BookManager bm = new BookManager();
TextManager tm = new TextManager();
System.out.println("Hello, user!");
System.out.println("pls, input book title");
Scanner scanner = new Scanner(System.in);
String d = scanner.nextLine();
System.out.println("pls, input book author");
String d1 = scanner.nextLine();
System.out.println("pls, input book summary");
String d2 = scanner.nextLine();
bm.addBook(d, d1, d2);
System.out.println(bm.getBookMassiv().toString());
>но когда записываю в файл этот массив, то у меня записывается не содержание массива (как выводится в консоль), а просто две скобки квадратные: []
полный текст своей хуйни скинь, по ошметкам гадать не получается
Говно мамонта.
Очень сильно поменялись подходы, много что перепилено, что-то выпилено, что-то впилено, в общем, даже не открывай.
Понятно, что на русском читать приятнее, но ничего не поделать, раз более свежих переводов нету.
а есть че на русском, чтоб быстро по основам пробежаться и начать что то делать?
а тонкости и best practice я уже на инглише бы осилил, тупо из документации
я просто на инглише ну оч медленно читаю, эффективней будет несколько других на русском прочитать
Чтобы в одном месте, актуально и качественное - не находил. Сам изучал по десяткам мурзилок и видосиков на ютабчике.
ты не нового менеджера создавай, а инжекть того, в когорый ты книги добавлял. ну или синглетон мути
>>834956
>>834952
а если на инглише но очень кратко без даунских примеров про собак, флейтистов и тд, просто грубый перечень того куда смотреть для реализации приложения по шагам и краткого описания взаимосвязей и работы фреймворка
крч чтоб было мол:
делаете хуйнянейм- используйте хуйнянейм2, для интеграции с хуйнянейм3 юзайте хуйнянейм4(она реализована на хуйнянейм5) либо технологию хуйнянейм6, но она морально устарела
и тд
если че, то я ебучие сервлеты знаю и связанную с ними древнюю хуйню- пролетел на курсах епама- ебучая корона
Всё бумажное, что я читал это ацкая хуита.
Спринг про 5 это размазывание соплей на 9000 страниц, притом в двух вариантах, конфигом и аннотациями.
Погляди пару роликов, есть на английском много, они там час, два бывают. Где делают обычный круд с пояснениями.
Потом почитай мурзилок, чтоб разжевали что не понял.
И уже потом во время работы будешь гуглить доку и смотреть что тебе надо.
>просто грубый перечень того куда смотреть для реализации приложения по шагам и краткого описания взаимосвязей и работы фреймворка
pro spring 5, chapter 16. 80 страниц
>medium.com
чтоб найти поиск надо его загуглить, в разделе программирования подразделы гавна и мочи - все остальное в подразделе программирование
какие же люди гавноеды
>>835009
>Погляди пару роликов
дай самый годный/ые видосы/каналы, ибо я уже хз сколько раз пытался начинать разный бред смотреть- там то прерывается курс, то купите наши курсы, то просто гавнокод
>>835020
>80 страниц
гляну джва дня читать буду
> medium.com
Там мне в одно время показывалось сообщение, что у меня осталось N бесплатных статей в этом месяце, а дальше регистрация и подписка. Я просто открыл в приватной вкладке, и счётчик сбросился. Очень тупо.
Что поделать, раз уж большинство постит контент в первую очередь туда.
>дай самый годный/ые видосы/каналы
Мне понравился letscode, я его выше упоминал.
На английском почему-то запомнился тот видос, записанный внезапно чернокожим. Там ровно за час он делает на спринге простейший круд, amigos code или как-то так.
Попробуй книгу Professional Java for Web Applications by Nicholas S. Williams.
Не смотри на то что книга вышла в 2014 (как раз успели затронуть фичи 8 жавы), содержание там весьма современно и мало чем отличается от современных подходов в спринге. К тому же это чуть ли не единственная более менее современная книга с объяснением и примерами работы именно с обычным Spring (не Boot), ведь 99% современных гайдов что в сети, что в книгах пишутся под Spring Boot only, что весьма печально на самом деле.
Параллельно с книгой обязательно читай основную доку -> https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/index.html (Core часть в ней вообще отлично написана) так как в самой книге многие моменты не раскрываются с нужной глубиной. Плюс сверху обязательно навернуть цикл лекций от Евгения Борисова:
Spring-построитель: https://www.youtube.com/watch?v=rd6wxPzXQvo
Spring-потрошитель: https://www.youtube.com/watch?v=BmBr5diz8WA
На размышление дается 30 секунд.
Про свой ApplicationContext было интереснее.
Идти внешним и вложенным циклом по массиву (как в пузырьковой сортировке), сравнивать заданное значение с суммой arr[ i ] и arr[ j ], если равно, то сразу возвращать, после цикла, если ничего не нашли, возвращать null.
В какой-нибудь банк, дорабатывать большую банковскую систему вместе с ещё 50 разрабами. Заниматься будешь одним таким проектом годами вместо принятого в пыхоплеяде "сдал проект и забыл".
Большинство кандидатов сразу предполагают, что «группа» чисел находится в массиве. Вы можете успешно решить эту проблему, используя массив для хранения чисел. Скорее всего, это будет алгоритм квадратичной сложности O(n²), потому что для каждого значения вы будете перебирать остальные значения. Но существует более эффективный способ решить эту проблему за линейное время O(n), выбрав другую структуру данных.
Как-то так.
>выбрав другую структуру данных
А типа построение хешсета это бесплатно?
А так конечно самый быстрый вариант это сортированный массив, асимптотика у него такая же как и у хеш таблицы, но чистый перформанс выше.
Просто явное указание типов для generic-метода. Когда они не указаны, компилятор использует вывод типов.
Пример с отсортированным массивом?
а тут вариков не много.
Или ты просишь выше рынка с расчетом на то, что не придётся через год смотреть на лево, либо идёшь на зп по рынку для твоего опыта, а через пол года - год меняешь работу.
Вообще, до 4 лет опыта я бы пользовался второй схемой. Так ты и прокачаешься лучше и бабла больше сгребёшь, поскольку прибавки нормальные ты не будешь получать, пока на проекте не посидишь пару лет.
Вот и получается: уходишь, просишь выше рынка, опыт растёт. Проходит год, ты снова просишь выше рынка, снова уходишь. А вот после 5 лет опыта - садишься на проект(снова за больше рынка) и там уже увеличиваешь зп в рамках одной компании, не меняя мест.
> это нужно уметь?
В сервлетах мало интересного, почти те же контроллеры, но кишки сильнее торчат наружу. Достаточно иметь о них общее представление.
> И насколько хорошо нужно знать кишки фреймворков джуну?
Не особо нужно, пока можешь верить в магию и не особо думать, но лучше разобраться.
>>836379
Несколько раз уже слышал подобное мнение, не пойму, чем оно подкреплено. По факту от джуна всегда требуют знать минимальный стек со спрингами и хибернейтами.
>не пойму, чем оно подкреплено
Зависит от ебанутости тимлида, проводящего собеседования, могут выебать как алгоритмическими задачами, так и тонкостями работы с фреймворками. В глазах собеседующего, нынешний кандидат в джуны это мидл с 5+ годами опыта, задрачивающий литкод в свободное время для удовольствия.
XML - это просто способ записи любых данных, структура, смысл и применение этих данных ничем не ограничены (как, например, в HTML), можно юзать как угодно. Разные технологии, будь до мавен или xml-конфиг для спринга, не имеют между собой ничего общего кроме того, что у них одинаковый способ записи данных.
я тут нашел просто курс в интернете по использованию XML и XSD для тестировщиков. Там затрагиваются такие темы, как пространства имен, схемы, соответствие схемы, типы данных, элементы sequence, all, choice, enpoint, http и всё-всё-всё, похоже на ещё один язык программирования. Вот я и спрашивают про это углубленное изучение.
Если будешь пилить свой формат на основе XML, то придётся в это углубиться. А до этого от знания XML тебе хватит синтаксиса записи тегов, неймспейсов, ещё, возможно, чтение XSD.
подкреполено мнение опытом. Я сам часто собеседую от джунов до помидоров. Во всяком случае, именно этаких знаний я от джуна и жду. Первое, что надо - это сам язык и стандартная либа, как можно больше. Т.е. собес строится так: сперва спрашиваешь, что кондидат знает, а затем от его ответов копаешь в глубь. Ну и sql тоже обязателен, по крайней мере для нашей конторки. Без этого у нас даже не понятно, что вообще можно делать. Как только закончили с коркой - спрашиваю про фреймворки. И это уже мало важно, скорее даст преимущество перед другими.
А об хибер джун себе зубы сломает, если чуть глубже копнуть, чем "а что это вообще такое?" Аспекты и прочее из той же оперы.
Ок - за O(N) - в лоб вот что пришло сразу без подвохов - за один проход все в сет складываем - за второй проход каждый раз ищем есть ли в сете элемент равный SUM - current.
Я другой ньюфаг.
Иду сейчас по Хорстманну. Тут 80 страниц по xml. Стоит читать? С моей скоростью это дней 5 просто, а в первом томе я уже по совету анонов полторы главы пропустил(по swing и javafx).
Про хмл на андроиде напишут в книжках про андроид, а здесь самый общий хмл, не зависящий от предметной области.
вопрос от нуб-куна:
как реализовать поиск строки/строк в текстовом файле?
я должен сначала прочитать файл и записать его в какой-то массив, например, а потом там уже искать чет? или как?
Наивное решение именно такое: ты читаешь весь файл хоть в строку, а потом ищешь в нем то, что тебе надо, но этот вариант не будет оптимальным - тебе надо будет загружать в память весь файл. А если он 10ГБ?
Более правильное решение - читать поток из файла в некий буфер и искать подстроку там.
Если ты уверен, что файл разбит на строки, а не одна гигантская строка, то можно так:
https://pastecode.io/s/EZLSCX8nQ8
Если все это может быть одной строкой - то там надо читать по кускую байтов, потом еще склеивать куски на границе, чтобы проверить кейс, что стока поиска между двумя кусками попала, влом сейчас это писать, гуглится легко же.
Спасибо. Извини за тупой вопрос. А зачем тут буфер нужен? Разве нельзя через поток ввода без буфера как то читать по строчке?
если читаешь по строчке - строка и будет твой буфер. Буфер гарантирует, что ты будешь занимать фиксированный размер памяти.
Ты че тупой?
ConcreteProduct1 cp1 = AbstractFactory.createProduct(Type.CONCRETE_PRODUCT_1)
ConcreteProduct2 cp2 = AbstractFactory.createProduct(Type.CONCRETE_PRODUCT_2)
да, тупой ваще не вкуриваю
На этот вопрос тут вряд ли ответят, тут только джуны со спринговыми контроллерами, сеньоры, которые почти ничего не говорят, и немного вкатывальщиков.
Че вообще бля пишут на спринге, кроме офисной залупы и банковской душнины логриование логирования логов дашборда.
Linux.org.ru
Бывает, что и пишут. Я в зелёном банке даже про лендинги-визитки на спринге слышал. Просто спринг, да и джава в целом - это про серьёзные крупные проекты, где пхп не хватает, и важна в первую очередь надёжность, а не скорость клепания фич.
Ну форум - не лендинг. Если имаджборду написать на спринге, то это нихуя не просто будет. Я не понимаю почему нет мейнстримных опенсорсных решений на спринге, типа гуглишь скачиваешь допиливаешь, для пхп и Джанго такого добра навалом, например, а как гуглишь какое нибудь тривиальное решение для спринга- нихуя нет.
Нужно съесть ведро борща вилкой. У тебя минута, сучара!
Что ж, решение на стаковерфлове действительно находится быстрее минуты.
https://stackoverflow.com/questions/4328711/read-url-to-string-in-few-lines-of-java-code
Всё под нда, опенсорсить это нахуй никому не надо.
Джава, несмотря на открытие исходников, сохранила дух проприетарщины. Сидят в корпорациях тысячи джавистов и спокойно юзают проприетарные либы, сервера приложений и прочий софт, и им вообще без разницы, какая там лицензия. Даже больше - отдаётся предпочтение скорее дорогим проприетарным технологиям с поддержкой, чем бесплатные аналоги от анонимусов, который воспринимается как васянство. Даже если у жабы снова закроют исходники, никто и не заметит. Да и сам факт того, что Java - официальная торговая марка, и чтобы сторонней реализации получить право зваться джавой, надо согласовать это с Ораклом (можно вспомнить драму с oracle vs google). Ну и какое развитие опенсорса может быть в атмосфере копирастии и кровавого энтерпрайза? Технические возможности для развития опенсорса есть (тот же apache commons и всякие жбоссы), но большинство анонов трижды думает перед тем, как начать пилить опенсорсный проект на джаве.
То есть запускается на JDK 8, но не запускается на JRE 8?
Где-то слышал, что такое бывает, что жарник не работает на голом jre, и ничего с этим не сделать, ставить jdk. А для более новых версий джавы разве что генерировать дистрибутив jre через jlink и распространять вместе с жарником.
в stdout что пишет?
Я пытаюсь зашейдить зависимости с помощью https://imperceptiblethoughts.com/shadow/
на данный момент я просто его подключил в диррективах plugins и в supprojects/apply
задеплоил в локальную репу, подключил в тестовый проект - вижу что зависимости зашейдились как мне нужно. Но! Идея просто не видит их (пикрил2). Что странно, в дирректории для тестов эти же импорты работают (пикрил3)
Может кто нибудь подказать в какую сторону копать? я так понимаю нужно что-то донастроить в publishing, но что именно и как диагностировать проблему - без понятия
На ум приходили разные имиджборды и сайт типа пикабу, только с историями уровня /b про то как кто-то обосрался в универе на лекции. Еще интересна автоматизация osint'а, но тут нужно много времени имхо.
Как думаете такое зайдет или нет? Не посмотрят на меня как на наглухо ебанутого? Или лучше сделать что-то более нормисное, по типу торговой площадки?
Если будешь заполнять контентом что угодно, то посмотрят как на ебанутого. Ты же разрабом идёшь, а не контент-менеджером, лол. Достаточно сделать всё пустым с парой тестовых постов.
Да и редко действительно смотрят сайт, обычно достаточно рассказать про него самому. Изредка могут пролистать код.
если бы я пользовался только maven, чтобы ты посоветовал почитать на эту тему? я просто не знаю даже как гуглу нормально сформулировать свою проблему
UDP отбой, я обосрался в тестовом проекте, сам модуль test назвал.
Все куда ебанутее: зависимости не резолвятся в kotlin файлах, а в джава файлах резолвятся.
ну с такими проблемами мне не сюда, наверное сука
если кому интересно проблема была в каких-то криво смерженных файликах в META-INF папке, решил не шейдить все зависимости, а только пару штук реально нужных - проблема ушла
> Изредка могут пролистать код
Почти никогда. Собеседовать тебя будет обычный человек и у него есть дела поважнее чем смотреть на твои высеры в гитхабе.
бля спустя 3 дня вроде разобрался, пиздец ну и ебала
>Какой петпроджект написать на java/spring, чтобы было не стыдно показать на собеседовании и указать в резюме.
Это называется тестовое задание, которое тебе придётся сделать, чтоб пойти на собеседование.
Тестового задания может и не быть, могут сразу позвать на интервью, сталкивался с таким. Но про пета рассказать всё равно придётся.
Никакой, учи кор, основные концепции и алгоритмы, spring, rest, sql и ходи по собесам. На мой взгляд пет проект должен быть хороший, либо никакой, хуйню с курсов и копипасту видно сразу, а написать годный код ты скорее всего не сможешь все равно, ввиду отсутствия опыта
Если у чела пет проджект - круд на спринге, то чел - скучное говно без фантазии.
С фантазией это к гуманитариям, а программисты в большинстве своём без фантазии. Они пришли не рисовать красивые диаграммки и интерфейсы для заказчиков, а реализовывать. Даже код пишется максимально тупо и однообразно без всяких креативных выебонов, чтобы было легче поддерживать.
В андроид-треде ссылки на диски (или раздачи) с уроками от ОТУС. Есть такие оп буту? Вроде как они ему учат за овердохуя.
Не юзаешь мавен - значит ты пидор
А курс от оракла тебе не подойдет?
https://docs.oracle.com/javaee/7/index.html
Вообще, не знаю, что там учить - DI оно везед одинаковое, пользуюсь только референсом чтобы детали узнать. Spring Boot на мой взгляд куда адекватней сейчас учить, чем Java EE.
Надо перекатить, но некоторые тут перекатывать не хотят, пока тред не будет на последней странице.
Можно считать страницей часть ленты, которая подгрузится последней.
>Никакой
А если я все же хочу что-то написать? Не обязательно же любой проект нести показывать работодателю.
Если у тебя есть время на подобные проекты, учи хоть JavaFX. Смотря какой проект хочешь.
Ну вот хочу имиджборду с нуля написать на spring, либо торговую площадку, что-то типа клона авито.
Правда не уверен, что моих сил во фронтенде хватит на то, чтобы сделать не супер вырвиглазно
Чому скучный?
Ну у меня была идея написать приложение для автоматизации osint'а, что-то уровня этого https://v1.postuf.com/projects
но не под мобилки, а просто в виде сайта. Правда не уверен, что получится хоть что-то рабочее за разумный промежуток времени.
Почитай Java 8 in Action, Spring in Action 5, обдумай примеры, поэкспериментируй, четко знай sql, освой JPQL, Criteria API, Specification, REST API, spring boot web, integration, test, jpa-data, осознай JPA-связи @OneToOne, @ManyToOne и все, что с ними связано, SOLID и ACID принципы, Maven и Gradle (гредл современнее, а мавен - прошлый век).
По закону протекания абстракций, загнанные под капот сложные вещи однажды выстрелят, поэтому разбираться в низкоуровневых вещах необходимо. Абстракции типа Data JPA сокращают время разработки, но удлинняют время обучения, поскольку надо знать все, что они абстрагируют.
Ёпта, что за магия?! Я ввёл именно так (ну, только другой текст в кавычках написал), именно с setText, и среда разработки послала меня нахуй. Подчернкула label красным, типа не знает, что это за хуйня такая. Ввёл сейчас код, написанный тобой, и всё заработало. Спасибо, анон, выручил.
Давно не работал плотно с мавеном. Подскажи, там уже завезли удобную работу с мультимодульными проектами?
Помник с <packaging>pom</packaging> и тег <modules> со списком модулей. А в градле что-то удобнее придумали?
Поэтому вкатунам надо советовать питон и js, но не джаву.
>Помник со списком модулей
Что нужно сделать, чтобы (пере)собрать модуль вместе с модулями, от которых он зависит?
Просто запустить mvn (clean) package в каталоге с модулем, другие модули тоже соберутся.
Если нет никаких профилей то так оно и есть
А как ещё, вручную что ли каждый модуль собирать? Даже Ant умеет это делать автоматически, хоть и примитивно.
>А как ещё
Ну, например, с каким-то пердолингом вокруг отдельного понятия reactor build, который нужно запускать только на уровне родительского проекта, да еще с дополнительными ключами типа --also-make
https://maven.apache.org/guides/mini/guide-multiple-modules.html
Это уже не актуально все?
Наверное, нужно очень редко. В рабочем проекте, где 200+ модулей, не сталкивался с таким.
Я в таких случаях проверяю буквы, мало ли где кириллический символ закрался. С буквой с в начале слова часто такое бывает.
Там в самом первом предложении говорится, что это случай, когда у тебя project aggregartion, а не project inheritance.
В нормальном мавен-проекте есть корневой помник, и у каждог модуля есть свой помник. Естественно, рекурсивно все работает. Это де-факто стандарт работы с проектами в джава мире, думаешь там нет какой-то базовой вещи?
>Там в самом первом предложении говорится, что это случай, когда у тебя project aggregartion, а не project inheritance.
Ага, только aggregation это и есть упомянутая стандартная схема с
>Помник с <packaging>pom</packaging> и тег <modules> со списком модулей
https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#project-aggregation
Смотря несколько хорошо умеешь делать подобное. Когда я проходил на джуна, наверное, плюс-минус неделю бы возился, сейчас за несколько часов наклепаю.
10000 лет.
Не надо дергать, если результат не нужен. invokeAll внутри ждет и возвращает уже завершенные фьюечеры
Где-то видишь в помниках Project Aggregation теги <parent>? А в Project Inheritance они есть. Соси хуй, чмоша.
А дока говорит, что дожидается.
https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html
Да, видать с каким-то другим вариантом перепутал. Спасибо.
Т.е. короче
> <packaging>pom</packaging> и тег <modules>
не нужны, а нужен только
>parent
и вот тогда-то сборка модулей с зависимостями заработает как надо. Охуительная история.
Ты головой уебанный? Иди и читай доку.
> В рабочем проекте, где 200+ модулей, не сталкивался с таким.
Допустим, среди этих модулей если модуль A и есть модуль B, который зависит A. Ты внес изменения в код обоих A и B и хочешь собрать/запустить B, чтобы посмотреть, что получилось. Что конкретно нужно сделать? Достаточно "как обычно" выполнить package в B?
Нет, надо сначала сделать mvn install в A, иначе подтянет старый артефакт из репозитория. Но я так не делаю и запускаю mvn package из корня с packaging = pom, который сам пересоберёт изменившиеся модули в нужном порядке. Ты это к чему? В градле эта задача удобнее решается?
>mvn package из корня с packaging = pom, который сам пересоберёт изменившиеся модули в нужном порядке
А если захочется не все (изменившиеся), а только то что нужно для запуска B, то надо еще их явно указывать, кажется, через -pl. А если хочешь запустить что-то из плагина, который настроен только в B, потом все равно запускать отдельно.
>Ты это к чему? В градле эта задача удобнее решается?
Именно к этому. В грейдле оно просто работает, интуитивно, так как ожидаешь. Запускаешь что-то в B, он видит, что есть изменения в A, сначала собирает A. Когда грейдл только набирал популярность, многие на него переходили в основном как раз ради удобных мультимодулей.
Тред живой, его многие мониторят, раз отвечают быстро, просто постов мало в последние несколько дней.
Я хотел услышать краткий список преимуществ градла, чтобы смотивироваться его учить, но вместо этого получился срач про модули в мавене. Это обескураживает. Гуглить я умею, но хотелось услышать конкретику вместо статей на хабрах и медиумах. Ну и хрен тогда с тредом, пусть тонет без дальнейших перекатов.
Понятно, спасибо.
>Тред оживает, когда ругатья начинают.
Тут обратная зависимость. Когда оживает, обязательно заодно всплывает и говно
> чтобы смотивироваться его учить
Причина одна - если он понадобится на проекте. Все. Для меня это так работает.
Для меня не работает. Если я однажды решу уйти на другой проект, а там совсем другой стек, то рискую потратить там слишком много времени на его изучение. Система сборки, конечно, не язык программирования, чтобы её долго учить, а сущая мелочь, но если таких мелочей будет много, времени уйдёт уже немало. Вот и тыкаю иногда альтернативные решения, чтобы однажды не остаться EE-диинозавром.
Вот это кури для начала. Годная хуйня:
https://scanlibs.com/java-ee-6-i-server-prilozheniy-glassfish-3/
Есть более новое издание, с ee 7 и glassfish 4, даже перевод можно найти бесплатно без смс. Читал, слишком обзорно, но для начала норм.
Есть, но там выкинуты нахуй сервлеты, JSP/JSTA, JAX-WS, что не очень хорошо для вкатывальщика. Поиграться с голыми сервлетами полезно, все надстройки станут гораздо понятнее.
Поскорей бы. Конфиг в виде ямля, кастомные плагины с нормальным апи, вставки на груви...
> Конфиг в виде ямля
Уже сейчас можно, причём на удивление просто:
https://www.baeldung.com/maven-polyglot
Так это просто маппинг 1к1 на xml. А если взять за основу ямл, то можно кучу других плюшек получить.
// pom.kts
project("com.example:test:1.0.0:jar") {
println("Hello, polyglot-kotlin!")
}
Но интересного тут сделать можно мало, проще найти какой-нибудь gradle-maven-plugin или написать свой extension, позволяющий дёргать API мавена.
Есть один металлургический завод, пилим для него проект с автоматизацией процессов, отображением информации и прочей хуйней. На дейли сказали учить Камунду, NiFi и ISA-95. С последним как раз и проблемы. Если верить википедии (https://ru.wikipedia.org/wiki/ISA-95) и некоторым внутренним документам, то это просто стандарт, каким хуем он нужен программистам в разработке - я хуй знает. В моем понимании этой хуйней занимаются как раз заказчики.
Есть еще какая-то вот такая хуйня – https://github.com/jpdillingham/B2MML4j
Мб кто-то тут сталкивался с этой шнягой? Как ее понимать и для чего она нужна мне, разработчику?
Пушто проект на Жабе и тут не раз на вопросы отвечали, а в другие треды я не захожу особо
> это просто стандарт, каким хуем он нужен программистам в разработке - я хуй знает. В моем понимании этой хуйней занимаются как раз заказчики.
Да.
Короче, вроде как что-то да понял. По сути это просто набор классов, представляющих собой разные структуры данных. Репа как раз содержит все эти структуры в виде Java классов, но в формате B2MML, который реализует этот самый ISA-95. Хз, мб кто-то тоже столкнется с этим, вдруг поможет
Есть класс сущности, тут две проблемы:
хибер не игнорирует проверку на null и выбрасывает LazyInitializationException
если использую org.springframework.transaction.annotation.Transactional не убирает LazyInitializationException could not initialize proxy - no Session(хотя то же самое у другой сущности работает), возможно из-за того, что у другую сущность я достаю в одном месте и в том же методе использую get, а эта попадает в другой метод и только потом я хочу получить roles.
context.xml
<bean id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean id="persistenceExceptionTranslationPostProcessor" class=
"org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>
Нет гарантий, что копия глубокая + можно забыть переопределить при наследовании + приходится кастить Object.
Нормальных способов нет можно через всякие извраты, но в целом это антипатерн так делать. Меняй логику.
Спасибо, похоже, надо вылезать из хибера.
ганво мамонта не робит
> LazyInitializationException could not initialize proxy - no Session
Ну это же классическая ошибка JPA. Просто добавь @Transactional на все методы и усё. Синьоры рекомендуют.
Нет.
аноны, дайте годную задачку на выполнение. чтобы было интересно и глаза горели.
Вот сейчас я например делаю простую змейку. Чтобы еще такого эдакого интересного сделать?
если web чому не php выбрал?
Я мидл, и такому сеньёру я бы ебало набил, фактически транзакция бы перестала работать.
И вообще хибер говно, юзай jdbc template спринга. Или перепиши на JOIN FETCH при поддержке хибера.
Блять, какой же джава ебучий пиздец. То что в ruby делается за два тыка в джаве надо описывать через ебучий пиздец. Ещё ко всему геттеры и сеттеры хуярить. Один пиздец. Какая же лажа. Почему вы на этом пишете?
Понимаю почему среди джавистов так популярны IDE типа интеледжа. Тут без IDE придётся так дохуя печатать что можно и ёбнуться.
анон, как тут твоей записи лайк поставить?
Попробуй на руби написать высоконагруженное api, с кучей потоков, и чтобы это работало быстро, тогда поймешь. В целом я с тобой полностью согласен то что уже есть языки с большой функциональностью и описать стандартную ситуацию можно в две строчки, но увы приходиться чем то жертвовать. Именно поэтому до сих пор много пишут на С++ и Java.
Это копия, сохраненная 8 апреля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.