Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?
А: Нет, не поздно.
Q: Cобираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?
A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред.
Q: Хули все книги на английском?
A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Что скажете за джавараш?
Если вкатываешься с нуля, то можешь написать пару "хеллоу ворлдов" до 10 лвла. Дальше курс рассчитан на ленивых и не умеющих читать книжки людей. Количество говнокода зашкаливает, годных задачек пару штук на весь курс. В любом случае решать тебе.
>>1319608 (OP) Мужики, разъясните, что значит ЗНАТЬ алгоритмы. Ну вот, к примеру, я представляю, как работает сортировка слиянием. Нарисую картинку, объясню сложность, но вот так сходу на джаве я ее НЕ РЕАЛИЗУЮ. Я знаю сортировку слиянием или нет?
Палю быдлу годноту. https://exercism.io/tracks/java В 10 раз пизже обоссаного джавараша и в 10 раз полезнее + у вас есть персональный ментор, которого можно иногда подзаебать. мимо из го- треда
>>1320015 Там все задания из реальности. По- крайне мере, я прошел весь курс по Go. Каждое новое задание - новый экспириенс. Ты осваиваешь язык, а не матан. Мне суперзашло. Я думаю, курс по жабе - не хуже. >>1320002 Ничего платить не надо. Все бесплатно. Причем, можешь рандомно получить какого- нибудь известного в мире жабы чувака, нахаляву. >>1320021 Добавить в рут - слишком сложно ?
Реквестирую опытного писателя юниттестов в этот итт тред. Будь добр, опиши вкратце как ты работаешь. Скорее всего, у тебя есть наработанный подход, и меня интересует примерное его описание на примерекоторый ты выберешь сам для своего удобства.
Насколько нормально делать такое? Есстественно это пример говнокода но смысл думаю ясен. С учетом того, что раз,два, три это сложные конструкции, например забит путь до папки вида Paths.get(FileSystemView.getFileSystemView().getHomeDirectory().getAbsolutePath())... public class A{ final int one = 1; final int two = one + 1; final int three = one + two +1; //Getters } public class B{ final int number; final A a; pubic B(final A a){ this.a = a number = a.getThree } }
Как мне разбить строку на токены по пробелам, кроме тех пробелов, которые внутри кавычек? Например из 'а б "в г" д' надо получить а, б, "в г", д. Это вообще возможно только с помощью регулярных выражений?
хотел бота для телеги накатать. Возникли проблемы с проксёй, сел читать вики по библиотеке (ну, TelegramBots, вы знаете), увидел про то, что теперь есть какие-то Ability Bots и решил заодно попробовать. Но, сука, там нет jar библиотеки. Только через gradle или maven подключать репозитории. Я с ними не работал никогда. Пробовал сделать по инструкции - хуйня какая-то получается. А кроме тго, что хуйня градл перед тем, как это сказать, что вышла хуйня, ещё и собирает все по 5 минут. Хелловорд ебаный 5 минут.
Вопросы: 1) Что делать когда нет jar-файла библиотеки? Только через этих уёбищ что-то собирать? 2) Не уже ли вообще никуда без этих уёбищ нельзя? В андроиде,тоже градл, ок. Но я не понимаю зачем они нужны, если честно. Разве все эти зависимости так нужны? А если да, то почему их не нужно при обычных jar библиотеках? Я просто запутался
>>1320377 Меня смущает вот это: inal int number; final A a; pubic B(final A a){ this.a = a number = a.getThree } может для number сделать public int getNumber(){ return a.getThree }
>>1320377 Обычно все константы широкого доступа, типа адресов или путей, пихают в один статик класс. А уже потом из него дергают когда необходимо. Если что то сложное нужно присвоить то делать это лучше в конструкторе или в блоке инициализации. Там уже можно и проверки делать и ошибочку выкинуть не делай так
>>1320734 Ну я так и хочу. Только там в >один статик класс уже есть необходимость вот в такой фигне для читаемости больше даже. Чтобы не ебенить путь до десктопа каждый раз в просто сделать putiDoDesktopa.resolve("vasha papka"). не транслитом кончено это я так Ну и статик классы в целом это тоже такое себе... >>1320548 Да может быть. Я ищу бест практис. Один хуй это говно работает как его не пиши. Не хочу плодить говнокод.
Есть ли способ цветного отображения в винде log4j2 в консольке идеи? Я пробовал через jansi, но почему то не работает. Хотя сама jansi работает. Вон хеловорд разноцветный.
Ребят, помогите плиз. Есть у меня задание по потокам. И один из них должен находить в строке самую длинную повторяющуюся подстроку.
Нашёл на сайте паскаль реализацию, но чёт не одупляю.
Function Rep(s : String) : String; Var i,j,k : Byte; Begin For i:=Length(s) div 2 downto 2 do For j:=1 to Length(s)-i+1 do For k:=j+i to Length(s) do If Copy(s,j,i)=Copy(s,k,i) then Begin Rep:=Copy(s,j,i); Exit; end; end;
>>1321466 Потому что ты хуесос и не знаешь основ. Неинициализированная переменная примитивного типа это 0 или false для boolean. В своем говнокоде из jshell ты нормально задаешь только последнюю из них. >double dx = 0, dy = 0, sx = 0, sy = 0, mx = 0, my = 0; Вот так пиши, если уж хочется в одну строку, жуебок.
>>1321819 Проблема в том что понаобъявляли чекд эксепшнов, но многие специально пишут код который игнорирует их throw, так как в их методе они ничего осмысленного с экспешном сделать не могут, приходится заворачивать в какой-нибудь свой эксепшн, который при этом не должен быть чекед.
>>1322014 "Thinking in Java" позволяет понять как писать на языке так чтобы это соответствовало основным парадигмам и общепринятым стандартам джавы. Хортсман неплох ещё говорят, но я не читал.
Если пошло про эксепшены, нормально ли давать редирект на /error из @ControlerAdvice и через модель атрибут передать сообщение из эксепшена, чтобы отобразить его юзеру? В ресте ессно есть класс под это дело который возвращает читабельный джейсон в случае чего.
Ребят подскажите новичку. Есть 2 энтити Продукт и его наследник ПкПродукт.(пик1 и пик2) Есть 2 недофабрики пик3 и пик4. Фабрика ПкПродукта как видно наследуется от фабрики Продукта.
Ну и чтоб код для ПкПродукта не копипастить, я вызываю super.create() в нём. Однако он возвращает мне Продукт. Норм ли я сделал, что написал конструктор в наследнике, которые принимает этот продукт, и сетает из него все поля? Или дичь полная? Как лучше можно?
>>1322316 Юзер например сохраняет файлы на сервер через браузер, сервер говорит иди нахуй ваш файл слишком большой/пустой/что то еще. Прокидывается внутренний эксепшн аля "Пизда рулю вася что ты делаешь прекрати". Ну и отображаешь месседж юзеру. Я пока как то не придумал как это по другому сделать.
В чем космический смысл добавлять ВЕЗДЕ ид вида йоба хуйба файнал лонг = 8949849Л. Я понимаю для БД надо но даже в эксепшенах народ их хуярит даже в небе у аллаха есть.
Как создавать дто и сущности для юнит тестов: в @Before все поля вручную заполнять в каждом тесте, или может лучше создать один раз в виде бинов и инжектить в тесты? А может фабрику создать...
>>1322368 Это получается ты логику работы реализуешь через ексепшены а хуёвое решение. Проверил файл на размер, пустоту (удалил нахуй если нужно) и прост без задней мысли говоришь тупому юзеру чтоб нахуй двигал!
>>1322452 Ну там скорее не стал сохранять если файл валидацию не прошел. Не прошел валидацию - по идее ошибка же - показать пользователю где он ошибся. А эксепшн так и так будет пробрасываться, почему бы не взять с него месагу и не показать пользователю. Там же просто страница в браузере.
>>1322458 Дык может пользователю вернуть не страницу с ошибкой, а через AJAX закинуть результат и показать к примеру модальное окно (там у тебя йоба фреймфорк поди какой) с сообщением об ошибке
>>1322280 NullPointerException не я вляется checked, его нет смысла ловить, это ошибка предположения. А вот с каким-нибудь IOException бывает такое говно: ... File f = ...; try { return doSomething(f); } catch (IOException e) { throw new BadFileException(f, e); }
>>1321673 >Неинициализированная переменная примитивного типа это 0
за основы чего ты мне затераешь, петушок? основы бейсика? в яве нельзя не инициализировать переменные, иначе у тебя сразу выйдет error: variable might not have been initialized
>>1321647 >Потому что так делают пидорасы? ты так говоришь пидорасы, словно это хуже колбасы из дублирующихся строк. хотя может ты оплату построчно получаешь, но это, конечно, ещё хуже.
Хочу нахуячить петпроектов. Где взять тз или какую-нибудь инфу по тому, что является актуальным и какие вещи должны быть в проекте.. Чтобы залупу всякую не делать. Допустим, веб-приложение. А блять какое именно? Нужно кароч расписанное тз с используемым стеком, а не моя больная фантазия. Есть такое в интернетах?
>>1321673 >неинициализированная переменная примитивного типа это 0 или false для boolean неа, иди чекай. вот если массив не заполнить ничем, то там нулики будут.
Так, блэт. Паесните за будущее джавы. Интерпрайз сейчас весь на восьмёрке, а чё будет, когда её поддержка закончится? Оракл обещал, что бесплатная поддержка будет только у последнего майлстоуна а.к.а. последний мажорный релиз. Катиться на 11-12ую или как? Или башлять за поддержку с каждого процессора? Что же делать, как же быть?
>>1319608 (OP) Сап, двач. Здесь же есть автоматизаторы тестирования? Какой проект с selenium webdriver можно сделать, чтобы и самому хорошо разобраться, и показать потом работодателям как пример того, что можешь? Т.е. что-то или приближенное к работе, или просто сложного уровня. В wrk треда нет...
>>1323089 Покупать поддержку у другого вендора/пользоваться openjdk/использовать промежуточные релизы оракла, они вроде бесплатные, и каждые полгода пересажываться.
> Неинициализированная переменная примитивного типа это 0 или false для boolean
Если ты говоришь в контексте поля класса - то да, ведь оные дефолтно инициализируются конструктором. Если ты говоришь про переменную внутри метода/блока - то бред. В Си, например, неинициализированная переменная заполняется мусором из памяти, а в Джаве запрещено использовать "пустую" переменную.
Джава - она как твои учителя в школе, подавляют любую попытку выйти за границы правил :)
>>1323382 Такой себе экспирианс. Нормальные PM'ы выделяют бюджет на покупку лицензии.
Идея в разы удобнее и имеет куда больше фич.
Правда есть моменты, когда приходится её юзать. У нас на работе чувак реализовывал кастомный JBPM, а плагинов в идеи не было, ему и пришлось использовать Jboss'овскую тулзу в эклипсе
_public Books getBooks() { ________return books; _} ==================================================== Но получаю: ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (default task-1) ERROR: operator does not exist: bigint = character varying Очевидная несовместимость типов, но я не понимаю почему это происходит, вроде все как надо написал.
>>1323432 > operator does not exist: bigint = character varying
Ты неправильно джойнишь. У тебя энтити Book имеет поле-класс энтити Genres. Внутри энтити Genres, по всей видимости, есть необходимый тебе genre (string'а).
Так же, это будет работать лишь при uni-directional связке.
И ещё, у тебя архитектурная связка энтити неправильная. У книжки должна быть множественная реляция к жанрам (One-to-many).
И ещё один момент. Если ты хочешь из Genre вытащить только стрингу жанра, то хибер тебе это так гибко не пропишет. используй DTO, которое ты будешь маппить.
>>1323506 Ну да, лучше делать это на каком-то сайте с авторизацией, чтобы предварительно надо было заполнить формочку. Все равно в большинстве случаев ничем сложнее не придется заниматься.
>>1323507 Но это ведь слишком легко, нет? Ладно еще там взять валидные и не валидные данные для регистрации из какого excel(?) и после попыток регистрации помечать, где прошло успешно, а где нет. Но даже это еще легким кажется
Поясните за JPA. Когда использовать EntityManagerFactory, а когда SessionFactory? Я понял,что первый это реализация JPA с провайдером hibernate. Второй - реализация hibernate API. Так?
>>1323232 >>1323232 >1323192 >что конкретно предлагаешь? не в попку же жахаться >попку Скайп, вместе можно быстрее разобрать непонятные вещи. Конфа в скуйпе-телеге.
Ребяты выручайте. Наблюдаю в последний месяц, что, спустя примерно неделю я ловлю из DriverManager.getConnection null, когда пытаюсь подключиться к удаленной БД через jdbc. С чем это может быть связано?
Бтв сейчас поставил такую строчку Сlass.forName("com.mysql.jdbc.Driver").newInstance();
>>1323589 Весьма странно, getConnection по документации кидает эксепшн, а не налл вовзращает. Какой конкретно метод ты используешь? Да и Class.forName вроде уже делать не нужно и если драйвер правильно упакован, то все само найдется по субсхеме.
>>1323649 Покажи код, возвращает null и кидает эксепшн это взаимоисключающие вещи. Ну епт что написано в эксепшне? Может там сервак перезагружают/инетренет переподключался/луна в другой фазе.
>>1323515 SessionFactory - Hibernate specific API. EntityManager - стандартная джавовская спецификация так что да. Если есть выбор, не стоит юзать проприетарное Api , то есть однозначно EntityManager. Кстати, если я правильно помню, из него можно получить сессию но не наоборот. Да и нахуй это тебе, когда можно юзать репозитории в Спринг дата?
Парни, имеется веб-сервис на спрингбуте, в котором через activexobject реализована прозрачная авторизация. Т е. пользователь входит на сайт, берётся автоматически имя его компа и вуаля. Как сделать это не в ебаном IE?
>>1324149 Так у тебя не налл возвращается, ты просто налл записал, а DriverManager.getConnection ничего не возвращал, вот как был вместо connetion null, так и остался, а ты его вернул и у тебя где-то далеко далеко потом об этот налл кто-то споткнулся. Это не тот стектрейс что тебе нужен. Подключи sl4j или что там у спринга легко подцепится и нормально логни SQLException через logger.error.
>>1324377 Плодить дохуя классов на одну сущности изначально хуёвая идея, потому что потому, если придётся расшить модель, то придётся вносить правки в 150 разных классов добавляя геттеры и сеттеры. На мой взгляд, на одну сущность можно сделать максимум два класса: модель(ДТОха, ЖПАшный бин) и представление(уже классик, который ты будешь сериализовать уже и в джейсон и во что хочешь, хоть в жпс возвращать).
>>1324271 Так, в общем я допер до того, что нужно использовать ActiveDirectory. Суть в том, что некоторые сервисы в нашей корпоративной сети уже используют такой подход. Мой компьютер также подключен к ActiveDirectory сервера. Могу ли я реализовать прозрачную авторизацию, не запуская свой сервис на сервере сети, а запустив его на своей локальной тачке?
>>1324396 Ебаные двачеры тупорылые. Как обсуждать круды с дебилами и простейшие маппинги через спрингбут - так обсуждение на пару тредов, а как помочь с реальной задачей, так хуй кто что знает.
>>1324148 Хуй знает, у меня не возникло с этим проблем, если я правильно понял о чем ты. Правда сегодня я сделал то же самое на Antlr, получилось быстрее.
>>1324463 я не знаю, что ты парсишь. так что может и не обосрёшься. но загугли что такое иерархия чомского и какие грамматики он различает. можешь даже для быстрого понимания на ютубе ликбез посмотреть. если совсем на пальцах, ты, скорее всего, пытаешься обработать контексно-свободный язык методами для регулярных языков (последнее это лишь собственное подмножество первого) и обосрёшься, если будешь открывать/закрывать скобочки или другие попарные символы. но это не единственное место, конечно.
>>1324514 Как же все это тяжело воспринимается, если в вузе я изучал другую специальность. Вообще не понимаю эти грамматики. С вложенными выражениями никаких проблем не было, там все очень просто. Находится закрывающая скобка, а все выражения внутри скобок добавляются как дочерние к выражению, которое было перед скобками. Все рекурсивно, разумеется.
Сегодня за 12 часов (с 8 утра) по трехчасовому видеокурсу изучил JavaFX (на обычном уровне) до самостоятельного написания Flappy Bird за полчаса. Это заебись результат или так, ничего особенного? До сегодняшнего дня только лениво читал Шилтда, дошел до 300 страницы.
>>1324546 Простая система библиотечного учета. Есть книги. Есть посетители. Посетители берут книги. Нужно знать какая книга у кого. Если он просрачил сдачу книги, начислять ему штраф. Есть два типа ролей - пользователь и библиотекарь. Первый может онли брать-сдавать книги и видеть список книг который у него. Библиотекарь, например прощать штрафы. Естественно есть регистрация. По желанию OAuth. Ну и веб-интерфейс - можно по православному на JSP, можно на Thymeleaf, можно на Ангуляре
>>1324565>>1324546 И всё это сделай с помощью jHipster, простой монолит апликухой, с мордой на реакте. Отвечаю, если разберёшься и сделаешь, возьмут изи в любую крупную контору.
Как делается вопрос в рест сервисе(любом)? Забавно, что я могу написать на спринге сам рест сервис с БД и обработкой исключений но не понимаю кто будет делать пост запросы в эту апи.
>>1324603 Я не спрашиваю как работает хттп. Я спрашиваю конкретное применение пост запроса в рест сервисах. Кто его делать будет? Откуда блять он придет? В тот же сраный спрингкроме которого в жаве все мертво с его сраным рестконтролером как делать будет совершаться запрос? покормил
>>1324600 Окей у тебя есть некий сервис, подцепленный к базе юзверей (логин пароль) и у него наружу торчит API. Есть другой сервис, в котором происходит регистрация (веб-морда). Когда юзверь жмет зарегистрироваться, на твой первый сервис отсылается джейсон, что то типа POST user/add { login: xxxxx password: xxxx }
Контроллер первого сервиса ловит его, и вызывает сервис по конверту джейсона в энтити и персисту его в базу. Усе
>>1324612 Ну вот. Живой пример спасибо. Это все еще через кролика скорее всегоRabbitMQ. Трули нон хуман экспириенс вобщем. Все это наверно лучше на вебфлюксе хуярить?
>>1324622 Первые два варианта ты проигнорил? Если сервис внутренний, то запросы вполне могут пуляться каким-нибудь баш скриптом. Хелсчек микросервиса, запущенного через ci.
>>1324565 Спасибо. По шагам: 1. В SQL создаются три таблицы. Первая таблица содержит информацию о книгах (праймери = инвентарный номер книги, заголовок, имя читателя, дата выдачи). Вторая таблица: праймери = номер читателя, имя читателя, суммарный штраф. Третья таблица: праймери = номер события (нарушения), читатель, книга, просрочка в днях, штраф. 2. Собственно приложение на Java. 2.1. Подтянул JDBC. 2.2. Подключение к БД SQL 2.3. Приложение создаёт нужные statement'ы. 2.3. В приложении есть класс user, от него классы reader и librarian с разными правами. 2.4. Подсчёт и управление штрафами в зависимости от даты. 3. Интеграция веб-интерфейса при помощи Spring.
>>1324647 1. А где таблица юзер-роль? Где логин-пароль? Вообще садись и думай, как лучше сделать и не забывай, что все это должно быть нормализовано.
2. Ты хочешь юзать Хибер, но ты даже не понимаешь что это такое. Из третьего пункта видно что ты не понимаешь что такое спринг.Короче, кури Spring in Action 4 (не 5 - там Boot и Data - нихуя не поймешь)
>>1324647 Короче, рано тебе ещё так сразу, для начала, попробуй просто в памяти всё хранить, БД прикрутишь потом. Сделай простенькие классы, связи, посоздавай объекты в юниттекстах, посмотри чё как. Не надо так сразу.
>>1324647 Ну и начни с простого, сделай класс юзера, сделай класс книжки, сделай так, чтоб юзер мог брать книжки(не абы какие, а нужные), и выводи списочком аккуратно.
>>1324543 два разных типа, которые имеют открывающий и закрывающий символ/тег, вложены в друг-друга, то есть перекрываются. и тут ты никак регулярками это не разрулишь.
в примере я проебался и лишнюю кавычку добавил. просто мысленно убери какую-либо, и попробуй распарсить на листочке бумаги это. можешь для пущей забавы представить себе, что скобка и кавычка имеют одинаковый приоритет.
>>1324808 Спринт даёт абстракцию над хибером, так что разбираться в нём нужны нет, а вот в спринте есть что покурить - да. Никакие ждбц драйверы тебе не нужны, всё должно настраиваться в конфиге простым указанием типа БД.
>>1324628 Это ты ебанутый. Нахуя пилить целый слой реста, когда можно просто модель с валидацией сделать. Рест нужен для общения между собой 2х разных приложений. Отдельных блять. Например рест апи вк и "твое говно нейм", которое туда подключается. Никто в здравом уме не будет логин/регистрацию юзера тянуть через рест.
>>1324925 Как раз сел читать по Hibernate. Вкратце, я вижу три этапа задачи: 1) Код на Java - объекты и их взаимодействие. 2) Передача данных в SQL через Hibernate (https://proselyte.net/tutorials/hibernate-tutorial) 3) Создание веб-интерфейса (надо полагать, с использованием Spring).
Беру ИДЕЙку, создам SE-проект, напишу логику, прикручу hibernate.
Интересно, почему в Java такая каша из технологий в сравнении с тем же C#?
>>1324933 потому что оракл нихуя не делает, что позволяет всяким пидарасам писать велосипеды для неё. мелкомягкие в этом отношении молодцы и не ленятся обновлять свой .нет
Вась, петян тут. Как делать фабрики на яве без колбасы из кейзов в свитче? такой расклад, у меня есть куча классов с char полем, типа "репрезентация". Надо бы заебонькать фабрику, которая бы получала char и создавала инстанции этих классов в зависимости от того поля репрезентации.
Была идея пробежаться по классам, и схоронить в map эти чары и классы. А уж потом уже пихать в фабрику чар, а она будет заглядывать в map и дёргать правильный класс и конструктор.
>>1324655 Странно, сел писать CRUD и затупил, как всё это организовать, хотя у меня же есть собственные готовые образцы. Допустим, у Юзера есть список книг, это понятно. У Книги будет ссылка на пользователя, которому она сейчас передана (эта ссылка не будет входить в equals и hashcode).
Чем можно заменить такую конструкцию? Классов очень много, для каждого надо получать свои параметры. switch(class) { \tcase "class1" : return new Class1(ctx.getVar1()); \tcase "class2" : return new Class2(ctx.getVar1(), ctx.getVar2()); \tcase "class3" : return new Class3(ctx.getVar3(), null); \t... }
>>1325187 пока делай так, потом рефакторнёшь, когда поймёшь как сделать шоб нравилось, а то блять нашелся тут эстет. классы не крутятся, лавэха не мутится, пока ты хуетой занимаешься
>>1324975 Это две разные ващи, блять. Мавен это хуйня для менеджмента зависимостей в проекте, а диалог в ИДЕ это просто диалог в ИДЕ, который выставит какие-то внутренние настройки и подключит какие-то дефолтные либы.
>>1325200 Хуита. Как тока вижу такую хуиту, сразу смотрю по аннотации кто делал или правил, и отправляю обратно на переделку, а чуваку, который мёрдж реквест принял - по ебалу.
А хотя, для ваших хелоу ворлдов это может быть и норма.
>>1325211 >кок пок я кекитектор! я скозал! Ну и чем тебе не нравится абсолютно читаемый, пусть и топорный, код? Алсо, кукарекнуть ты кукарекнул, а свою представление правильного в контексте данного примера так и не представил.
>>1325215 Всём ёпто. Наличие такой хуиты свидетельствует о том, что изначально никакой архитектуры или дизайны в код заложено не было. Типичный спагетти говно-код, который потом заебёшься дебажить. Править тут нечего, надо всё рефакторить в пезду от основания, чтобы такие конструкции даже примерно использовать не пришлось.
>>1325220 Так и есть. Причинно-следственная связь - то, что отличает нормального софтваре инженера от говнокодера. Один будет бороться с "root cause", в то время, как второй будет всю хуйню ифами оборачивать.
>>1325239 Ты мне бросаешь корпоративный репо?) Во-первых, как я должен его открыть? Во-вторых, даже если бы я мог, как понять, что ты там пушил, а что другие делали)) Вас там по объявлению что ли набирают?
>>1325245 Какой блять реальный вопрос ты мне задал? Дать тебе ссылку на хитхаб, которым: 1. я не пользуюсь 2. даже если бы и пользовался, репо бы был приватный ибо корпоративная код-база Ты хуйню просил, я тебе как мог ответил.
>>1325247 Ну хуй с тобой (хотя оч странно, что нет даже завалящего акка на гитхабе, ну да в рот его ебать). Тогда ответь как правильно, чтобы не было спагетти кода
>>1325248 Я написал уже выше. Спагетти код, это результат хуёвого дизайна/архитектуры приложения/модуля/фичи, называй как хочешь. Что делать? Читать книжки в этой области, применять. Какие? Да хоть какие. Лично я всем "ньюкамерам" рекомендую head first: design patterns по 8 жабе. Там как раз про уточек и пиццу, всё как мы любим. Решать проблему в отдельно взятом кейс стейтменте - это хуита хуёт, говно-код.
>>1325254 Ясна-панятна. Джуна после жава-школки взяли на работку он вообразил себя аркитекчуром. Потому что нормальный аркитекчур, как ни странно, если у него есть время (а у тебя оно есть если ты на двачах висишь) ткнет ньюкамера хотя бы в конкретном направлении, а не начнет рекомендовать хэд фёрст).
Особенно блядь это смешно на фоне засилья 23-летних синьоров, которые прочитают хэд фёрст, нихуя не поймут зачем и почему, не видят дальше собственного носа, но все равно наворотят сраных паттернов и ОРХЕТЕКТУРЫ, а потом паттерны есть, а код либо нихуя не работает, либо соплями к костылям приклеен) И девы лепят все новые и новые костыли, потому что "Я кокитектор, я так козал". В итоге ПО превращается в какой-то комок дерьма, в котором одни тесты на тесты и конвертеры из ДТО в ДТО, посреди сидит гордый кокитектор, ковыряется в этом говне пальцем и говорит "Я сделалъ", а девы уебывают с проекта, потому что саппортить это говне просто нет сил. Остаются только джуны, которые рады что хоть так вкотились, но не могут самостоятельно разобраться (и не потому что они тупые, а потому что пиздец) и , блядь, кокитектор им советует почитать хед фёрст. А дальше гроб-гроб-кладбище-пидор и кокитектор тоже уходит разваливать очередной проект.
>>1325266 Хуйню несёшь. Ну то есть как, в принципе всё правильно, только в кал код превращается, когда джуны(да вощемта и сеньёры есть такие) начинают хуячить по принципу "ой, у меня тут нулпоинтер, оберну ка я его ифом", не разобравшись проблеме. А чтобы разобраться в проблеме, нужна таки какая-то экспертиза или хоть какое-то понимание. А где его взять? В 2019 году то? Ну хуй знает, может на заборе где-то написано "рэп - кал", в тех окраинах можно поискать. Что-то читать надо, в любом случае. Надеяться, что к тебе придётся добрый дядя и всё объяснит - это хуита из детского сада. Как правило, если джун не справляется и не учится, он остаётся джуном ОЧЕНЬ на долго. Через пару лет мидла дают, за выслугу лет, так сказать. И да, это не роль архитектора бегать и говорить "ой а давай ка тут спагетти код перепишем". Архитектор говорит, что нужен компонент, например, который будет делать вот это. И дальше уже всё идёт от тимлида/сеньёров. Ну и из своего опыта скажу, что менторить джуна, который пришёл из джава-школы и сидит ждёт пока ему всё объяснят - работа не благодарная. Нахуй не нужно, пошёл нахуй. Раз сказал книжку почитать, два, а на третий просто послал юниттесты писать, или хмл какой править.
>>1325254 ахахахахахаххахахахахахахахахахахахахахахахахахахахахахааххахаахахахахахаахахаххаххахахахахахахахахахахахахахахахахахахахахахааххахаахахахахахаахахахахахаххахахахахахахахахаххахахахахахахахахахахахахахахахахахахахахахааххахаахахахахахаахахахахахаххахахахахахаххаххахахахахахахахахахахахахахахахахахахахахахааххахаахахахахахаахахахахахаххахахахахахаххаххахахахахахахахахахахахахахахахахахахахахахааххахаахахахахахаахахахахахаххахахахахахахахахахахахахахахахахахахахахахааххахаахахахахахаахахахахахаххахахахахахахахахахахахахахахахахахахахахахааххахаахахахахаха... нет.
>>1325274 >Раз сказал книжку почитать, два, а на третий просто послал юниттесты писать, или хмл какой править. лооооооооооооооооооол чувак, ты точно работаешь на призводстве?
>>1325306 Такие-то фантазии про СТРОГОГО НО СПРАВЕДЛИВОГО синьёра-кокитектора, который левой рукой отправляет читать хед ферст, а правой новых суперперспективных гребцов набирает, ибо старых он отправил иксэмэльки править.
>>1325306>>1325308 Если ты работаешь в мелком шараше из 3 землекопов - да, могут и уволить, наверное, а из больших аутсорсинговых контор, где в общем-то самые деньги сейчас, никого не увольняют в принципе. Переводят с проекта на проект и т.п. В некоторых конторах есть даже практика СКАМЕЙКИ запасных, когда девелопер просто сидит в ожидании проекта и ничего не делает - в епаме том же. Бодишоп, хуйли.
>>1325445>>1325450 Да, без разницы. Сейчас, кстати, это ахуенно котируется, если девелопер не просто макакич с клавиатурой, но может и грейдловские скрипты подмандить. Ну типа поменять порядок сборки, знает про скоупы и вообще, может нормально сборку настроить.
>>1325481 >если девелопер не просто макакич с клавиатурой, но может и грейдловские скрипты подмандить Девелоперы, которые не разбираются в зависимостях, Jenkins, Linux – это просто пиздец какое позорище.
>>1325488 Ну, блять, тут спорно. Дженкинс, да и пердолинг с линуксом, это всё же для девопсов а.к.а. одминов работа. Хоть как-то разбираться, конечно, желательно, но не обязательно. Да и этой хуйне проще обучиться.
Компания HeadHunter составила рейтинг вакансий с самыми высокими зарплатами в январе 2019 года в России.
На первом месте с зарплатой от 574 тысяч рублей до вычета НДФЛ оказалась позиция врача — акушера-гинеколога-репродуктолога в Москве. По 500 тысяч в месяц работодатели готовы платить техническому директору и менеджеру по продажам нефтепродуктов в столице, а также финансовому директору во Владивостоке. Замыкает первую пятерку самых «дорогих» вакансий Python developer в Москве с зарплатой $4 тысячи на руки.
В десятку предложений с самыми высокими вознаграждениями также вошли позиции командира воздушного судна, директора по рекламе и маркетингу, коммерческого директора, Senior Java Developer и стоматолога-ортопеда.
>>1325528 > В десятку предложений с самыми высокими вознаграждениями также вошли позиции командира воздушного судна, директора по рекламе и маркетингу, коммерческого директора, Senior Java Developer и стоматолога-ортопеда.
>>1325592 Это генератор проектор, написано же, блять. Чтобы каждый раз не придумывать авторизация, интеграцию с БД и всякие кэши. Чтоб не писать одни и те же гредловские скрипты - создаёшь проект джипстером и отдыхаешь. + у него есть ахуенный JDL, который позволяет генерить весь круд. Ну и сразу прод/дев профайлы настроены. Для микросервисов есть годная реализация еврики и спринг клауд конфига, акчуатора и т.п. Ваще оч крутая тема.
В PermissionEvaluator если метод hasPermission, когда известно только id объекта. В этом методе я вытаскиваю объект из бд по этому id и проверяю владельца. Вопрос: что возвращать, если объект не существует, true или false?
>>1325716 >>1325718 >>1325719 Ладно, допустим, возвращаю false, но в самом методе (который защищен @PreAuthorize) тоже надо по id искать, а спринговские репозитории возвращают Optional, который в данном случае не имеет смысла, потому что я уже проверил существование объекта в эвалюаторе. В Optional писать сразу get без проверки?
>>1325724 Можно сделать через optional.orElse(...) или orElseGet(...) вернёт либо значение из опшенала, либо чё скажешь, если пусто. Ну или можно варнинг засапрессить на уровне метода, лол.
>>1325730 >>1325732 Значит остается только в сервисе писать orElseThrow с эксепшном, который никогда не выкинется благодаря PermissionEvaluator. Не очень красиво, ну да ладно.
Нужно ли писать жавадоки к своим хеловордам, которые собираешься показывать потенциальным работодателям? Их в работе кто то юзает вообще? @param,@return и т д?
>>1325149 >>1325072 Короче, написал я логику своего КрУДа в Джаве. Есть менеджер библиотеки, имеющий списки книг и читателей (пользователей). Менеджер создаёт, изменяет и удаляет книги и читателей (создание объекта одновременно заносит объект в список). Книга содержит информацию о том, у какого читателя она, а читатель содержит информацию о том, какие книги у него есть. Вызов метода выдачи книги пользователю в менеджере одновременно заставляет книгу прописывать своего читателя, а читателя записывать книгу себе в список. У книги есть дата выдачи (обнуляется при возврате в библиотеку), от неё считается штраф по дням. Штраф рассчитывает менеджер, просто перебирает все книги читателя и проверяет, какие просрочены, пересчитывает заново общий штраф и назначает читателю (можно прописать и отдельный штраф за каждую книгу).
Теперь к этому всему нужно прикрутить взаимодействие с MySQL через Hibernate (сливать списки пользователей и списки книг в database, вызывать их из database), и веб-интерфейс через Spring (вносить данные книг и пользователей). Всё правильно понимаю?
Джаваны, сдал тут давеча Java SE 8 OCA, повтыкал месяцок в Spring Core/Spring Boot/Spring Data JPA/Hibernate. Собираюсь почитать Effective Java и попробовать вкатиться на собеседование. Всё правильно делаю?
Пытаюсь разобраться в заполнении массива. Почему в первом случае получаеться код - понятно. Нашел в гугле решение, но как оно работает понять не могу. '0' - что дает этот нолик?,
Есть у меня контроллер, что принимает под себя hui/pizda/stats
Есть у меня кнопка, которая перекидывает на hui/pizda/stats?catalog={catalog}. catalog - переменная, а потому может иметь много значений, писать полный url не вариант.
RequestMapping ловит hui/pizda/stats и ему похуй что там написано дальше. Но теперь мне понадобилось добавлять инт в конец, т.е чтобы кнопка кидала hui/pizda/stats?catalog={catalog}/1 и я ловил вот этот инт последний. Но сколько бы я не пытался, сделать аля @RequestMapping(value = "{number}", method = RequestMethod.GET)
И я так же не могу поставить "stats/{number}" и прочее, ведь там есть ?catalog={catalog}. Как мне быть? Как словить вот этот инт в конце? Он тоже может быть переменной потому писать просто 1 не вариант.
Сап, вопрос очень легкий: я вкатывальщик в ООП. Окажите помощь, пожалуйста.
Создал приложение в JavaFX с тремя элементами: текстовое поле для ввода числа, кнопка "подтвердить" и лабель для отображения результата.
К кнопке "подтвердить" привязан слушатель, в теле которого и вычисляется результат по формуле.
Вопрос: как я могу использовать один этот графический интерфейс для многих приложений, но с другими формулами в теле слушателя? Конечно, можно просто скопировать и вставить код, переписав формулу в теле слушателя, но я ищу объектно-ориентированный метод.
>>1326334 Спасибо. А можно ли сделать абстрактным этот JavaFX-класс с кнопками и лабелями, оставив тело слушателя нереализованным, унаследоваться от этого класса и реализовать слушателя? Это будет правильнее?
>>1326052 >Теперь к этому всему нужно прикрутить взаимодействие с MySQL через Hibernate (сливать списки пользователей и списки книг в database, вызывать их из database), и веб-интерфейс через Spring (вносить данные книг и пользователей). >Всё правильно понимаю?
Нахуй мускл, для девелопмента используй H2. Ну и чтоб версию базы контролить прикрути liquibase. В спринге это всё изи, репозитории тока создать нужно будет и аннотах накидать туда-сюда. Хибер нахуй не нужен, спринг дата даёт абстракцию на ним - читай в ту сторону.
>>1326152 >hui/pizda/stats?catalog={catalog}/1 Хуита какая-то, работать не будет, если уж хочется в угле всё передавать, пределай на hui/pizda/stats/catalog/{catalog}/1.
>>1326543 Это такой тролинг? На сраковерфлоу пишут типо наоборот надо писать причем так, как если бы это все читал маньяк-убийца, который знает где ты живешь, и которому завтра сдавать проэкт.
Картинка не открывается на локал хосте. Беру в идее в хтмл прописываю нормальный путь, хуевый путь, картинку кидал уже и в статик сурс проекта, в папку с хтмл файлом, дописывал перед путем локалхост и номер порта, и многоточие, все равно одна хуйня выходит. В пути есть рузке буквы и заглавные тоже( это если полный путь указывать), а ещё ругается на двоеточие(:) как фиксить
Просто картинку без хтмл файла я могу открыть хостом, прописав путь, но в хтмле этот путь почему-то не пашет
>>1326629 Это не про джавадок, а про код. 90% джавадока - это срань уровня "этот метод возвращает объект юззера по айди" и метод называется getUserById(...) - к таком коду джавадок не нужен.
Аноны, посоветуйте наигоднейшие курсы по жабе на ютубе в хорошем качестве, чтобы для новичков совсем были. Хочу смотреть по пути на работу и по пути до дома с работы.
>>1326629 Ну хзхз, Мартин в чистом коде писал типа чем меньше комментариев, тем лучше, код должен говорить сам за себя и свободно читаться и в редких случаях содержать коментарии
>>1326690 Комменты нужны когда не очевидно, что делает метод, например, или для чего нужен интерфейс - взять тот же жаба.утил.конкуренси - там без поллитра не разобраться и там уместен джавадок, а когда у геттера пишет "yep, its getter" - за это надо убивать.
>>1326690 Комментарии нужны там, где не очевидно, что делает код. ПО коду должно быть очевидно, что он делает, но этого не всегда получается добиться. А для API всегда нужен джавадок.
>>1320292 Просто берешь и хуячишь всякую бессмыслицу, ассерты нуля с нулями, заменяешь моками половину функционала проверяемового кода. Главное - процент покрытия строк, чтобы пройти квалити-гейт.
>>1326900 В джаве- да, и при чём чем выше ты забираешься- тем профильнее она должна быть. На нормальных местах без вышки топ-10 вуза даже резюме не будут рассматривать, будь ты хоть трижды Крисом Касперски
>>1326900 А еще, если тебе больше 25, можешь даже не стараться. Ты уже отработанный материал, годный разве что мыть пол под ногами двадцатитрёхлетних сеньёров.
Сап гайз. Тернист и долог выходит процесс вкатывания в джунство. Я читаю туториалы по кору, не пиша код. И хочу остановить это. Как мне помочь? Есть ли смысл в платных курсах каких-то? Может бесплатные есть годные? Например Тинькофф Финтех, м? Там например какой-то набор идет, надо ли неистово стремиться попасть туда? Расскажите историй как вы вкатились на первую работу!?
Посоны, почему этот Spring такое говно? Делаю Spring-boot приложение, то одна хуйня не работает, то другая. Разные туториалы, разные ответы на StackOverflow, разные pom.xml, в итоге постоянно что-то не работает.
Кажется, никто толком не понимает, как эту хуйню запускать.
>>Если вкатываешься с нуля, то можешь написать пару "хеллоу ворлдов" до 10 лвла. Дальше курс рассчитан на ленивых и не умеющих читать книжки людей. Количество говнокода зашкаливает, годных задачек пару штук на весь курс. В любом случае решать тебе.
>>1327142 У меня было такое же ощущение пока не написал несколько хеловородов на спринге. Пиши мок-тесты, юнит тесты к своему говнокоду. Намного будет быстрее и проще пониматься где косяк.
>>1327147 >>>Q: Что скажете за джавараш? > >>>Если вкатываешься с нуля, то можешь написать пару "хеллоу ворлдов" до 10 лвла. Дальше курс рассчитан на ленивых и не умеющих читать книжки людей. Количество говнокода зашкаливает, годных задачек пару штук на весь курс. В любом случае решать тебе. Не согласен. Я с нуля прошёл весь курс JavaRush (), там: 1. Автоматическая проверка выполнения задач, написания кода. Где-то после 12 уровня идёт уже далеко не hello world, а работа с потомками, мультитрединг, всё познаётся на чистой практике. 2. Я бы посоветовал пройти как минимум 20 первых уровней (Syntax+Core) + уровней 5 от раздела коллекций. Купил подписку Javarush по акции на год за 5 тысяч.
Если замерим время, то получится (на вскидку) выполнение методов так (миллисекунд)
3000000 2800000 60 60 58
Можете объяснить, что происходит под капотом JVM? Как я понимаю, код скомпилировался в байт-код, JVM запустила один метод, потом второй, некий счетчик увеличился, JVM поняла, что это популярный метод и скомпилировала его в машинный код. Правильно? Ок, но ведь параметр Х каждый раз разный. Как достигается такое быстродействие?
>>1327170 Немного. JavaRush быстро проходится. Хороший вспомогательный инструмент научиться синтаксису, работе с данными и ООП.
>>1327229 Лох бы я был, если бы выкинул сотню на какой-нибудь SkillBox или GeekBrain. А тут соотношение цена-качество отличное. Как пару раз в кафе или баре посидеть.
>>1327231 >Лох бы я был, если бы выкинул сотню на какой-нибудь SkillBox или GeekBrain. А тут соотношение цена-качество отличное. Как пару раз в кафе или баре посидеть.
Нет, лучше бы получил вышку до 25 и стал сеньёром в 23.
Поясните за put реквесты в спринге. Оно работает без конкретной имплементации? Я сейчас немного прихуел когда из контроллера пишет сразу в БД, без каких либо вызовов методов вообще.
@PutMapping(value = "/put/{id}", consumes = {MediaType.APPLICATION_JSON_UTF8_VALUE}) public ResponseEntity<String> update(@PathVariable("id") Long id, @RequestBody @Valid Entity){ return new ResponseEntity<>("User was successfully updated", HttpStatus.OK); }
>>1327231 Ты отдал деньги за сомнительную хуйню, вместо которой мог просто скачать из интернета книги + иде и учиться ПРАВИЛЬНЕЕ И БЫСТРЕЕ, лол. Нет не лох кончено же.
>>1326052 Продолжаю писать CrUD. Написал черновую логику КрУДа. Создал maven-проект с Spring Boot, всё работает, генерируются динамические web-страницы. Поставил MySQL, буду подключать Hibernate. Потом после всего создам веб-интерфейс и импорт из CVS. Возникли вопросы по архитектуре.
1. В SQL у меня будет таблица с книгами и таблица с юзерами (считателями). В ООП у меня будут такие поля книги, как User holder (у кого книга), Date checkOut дата выдачи (буду считать штраф) Boolean available (доступность книги) // подумал, что эта переменная не нужна, вместо неё можно просто проверять, является ли holder null Соответственно, эти переменные (holder, checkOut) предусматривать в таблице book?
2. У меня в классе User будет поле-список books (книги, которые взял именно этот юзверь). Как это предусмотреть в SQL-таблице users?
>>1327237 >Ты отдал деньги за сомнительную хуйню, вместо которой мог просто скачать из интернета книг Ты глупый. Читать книги != писать код и проверять его. Книгами и ютубом можно заменить лекции и вебинары, но не задачки с проверкой.
>>1327243 Скачать иде и писать код + писать к нему тесты. Денег отдал ты, а глупый я. Тебе жава раш за пиар платит чтоль? Ты там СММшикн? Говно же лютое. Сириосли. Есть гугл, есть стаковерфлоу, баелдунг и куча куча всего. Это не считая нормальных книг. Которые лучше и полнее чем жава раш/лекции/вебинары. Нужен только нормальная голова и минимальные знания английского. Если последнго нет, иди сперва учи инглишь, иначе хуй ты чего накодишь.
>>1327252 >Скачать иде и писать код + писать к нему тесты. Много ты напишешь с нулевыми знаниями. Ну скачаешь ты идейку, напишешь хелло ворд, а дальше что, сразу веб-приложения писать? Задачки Javarush - хороший источник практики на старте.
>Это не считая нормальных книг. Которые лучше и полнее чем жава раш/лекции/вебинары. Книги лучше чем лекции или вебинары, но книги не заменяют практику. А полный новичок на этапе перехода от теории к практике и завязнет благополучно.
>Нужен только нормальная голова и минимальные знания английского. Если последнго нет, иди сперва учи инглишь, иначе хуй ты чего накодишь. Мой английский лучше твоего, мань.
>>1327255 Скажи еще сколько задач скопипастил с гитхаба?
Алсо, сам прошел джавараш, но он был ДО хорстмана и шилдта и мало кто может представить, сколько боли и страданий он мне принес. Хотя в целом концепция годная.
>>1327265 >Скажи еще сколько задач скопипастил с гитхаба? 99% честно решал сам. Лез сверяться только в самом крайнем случае когда валидатор зверствовал
>Алсо, сам прошел джавараш, но он был ДО хорстмана и шилдта и мало кто может представить, сколько боли и страданий он мне принес. Я полностью заменил лекции жавараша Эккелем.
>>1327241 Сделай отдельную таблицу для отслеживания всех выданных книг. И храни там исторические записи с данными: айди холдера, айди книги, дата начала и окончания. Так как только одно состояние может быть актуальным на данный момент, то можно завести флажок, отружающий последнюю строку в таблице, и создать индекс на книгу и этот признак.
Как корректно заммапить это с помощью JPA, я затрудняюсь ответить, но беглый гуглинг показал, что один из вариантов: OneToMany + Filter.
>>1327258 Я пробовал курс на udemy, правда по Спрингу. Автор давал задание, а потом в следующем уроке его разбирал. Но, блджад, почему-то он быстро скатывался в говнокод, и я в итоге склоняюсь к тому, что этот курс дропну. Но при этом объяснения касательно самого Спринга давал нормальные.
>>1327266 Стоит ли проходить Джавараш, если я получил OCA и более-менее ориентируюсь в базовых вещах? Ты написал про изучение синтаксиса и основ ООП - в принципе OCA на это и заточен.
>>1327281 >Стоит ли проходить Джавараш, если я получил OCA и более-менее ориентируюсь в базовых вещах? Ты написал про изучение синтаксиса и основ ООП - в принципе OCA на это и заточен. Я думаю нет. В Жавараше мне понравились раздел, касающийся работы с потоками, в том числе с архивами, обмен данными, сериализация и класс лоадеры. Но я думаю, всё это можно почерпнуть уже самостоятельно, если ты умеешь писать простые приложения.
>>1327281 >Сделай отдельную таблицу для отслеживания всех выданных книг. И храни там исторические записи с данными: айди холдера, айди книги, дата начала и окончания. Так как только одно состояние может быть актуальным на данный момент, то можно завести флажок, отружающий последнюю строку в таблице, и создать индекс на книгу и этот признак. Вот неплохой ролик, но автор напихал в pom.xml слишком много зависимостей сразу. Мне бы хотелось разобрать подключаемые технологии по шагам, тем более, что у меня будет информация не только по книгам, но и по юзерам.
>>1327169 Хуй его знает что там JIT устроит, может например вообще все вычисления убрать если ты их не используешь никак. Может векторные инструкции для твоего проца сделать, смотри как анализировать перформанс в выступлениях Шипилева, посмотри про JMH и HROF, perf и вот это https://stackoverflow.com/questions/1503479/how-to-see-jit-compiled-code-in-jvm
Время выполнения из твоего примера скорее всего не в милли, а в микро секундах. Несколько секунд первого прогона говорят о том, что JVM честно выполнила цикл, а 60 мс - о том, что твой цикл был удалён JIT компилятором, потому что результат вычисления нигде не используется. Выведи a хотя бы в System.out.
Но даже учитывая тот факт, что JVM - дохуя умная штука, она не сделает априори медленный код быстрым. Твой цикл в следующем виде: for (int i = 0; i<Integer.MAX_VALUE; i++) a += i; a *= x; Даёт те же результаты, но работает намного быстрее.
>>1327417 >а 60 мс - о том, что твой цикл был удалён JIT компилятором, потому что результат вычисления нигде не используется. Выведи a хотя бы в System.out.
Вот этот момент меня интересовал больше всего и так оно и оказалось. Спасибо. В цикле я использовал несколько более сложные вычисления, чтобы получить более наглядную задержку. При использовании sout в конце цикла и замерами System.currentTimeMillis() я получил такие цифры:
4003 3985 2949 2942 2980
Приблизительно такой результат я и ожидал увидеть в самом начале.
>>1327515 Двачую. Самый верный путь. Книг только не 1 а штук 5+ хотя бы. Одна-две из которых по алгоритмам. Data Structures and Algorithms in java например. Можно еще Кукбук почитать по джаве. Это все не считая полной документации фреймворков и всяких вариаций жава ин практис. По крайней мере это не говнораш, который тут их сммшик пытался пиарить. Видосы это потеря времени за редким исключением. О'рейли неплохие, больше так на память не приходит ничего.
>>1327515 Ах да, забыл сказать - я начинал писать на сервлетах, соблюдая mvc. Потом узнал, что такое Spring, Hibernate, Angular 2, React, Redux и тд. И вот потом уже Spring Boot.
>>1319820 Анон ебать ты гений. Охуенное тебе человеческое спасибо. Я достиг 15 лвл на джавараше и заебался ним (ну чисто не прёт). Решил попробовать твою ссылку - проебался 2 суток и чуть не охуел пока не сделал 1 задачу на написание хэлоуворлда. Установил этот ебаный CLI, пришлось зарегистрироваться в Gitlab и Github, запилить Gradle (IDEA у меня уже была), запустить там тест, разобраться с TUTORIAL.md - короче заебался конкретно. И хэлоуворлд там ни хуя не System.out.println. Короче пока скачал исходники, пока закачал решение обратно через командную строку - чуть не ебанулся. Но зато в конце просто гением себя почувствовал! ЧСВ выросло до 20лвл. Буду жать дальше.
>>1327522 Angular - самодостаточный фреймворк React - библиотека, которой нужны другие библиотеки Так же Angular имеет привычную java программисту layer-ную структуру
btw, через три года на веб галере с выполнением заказов от клиентов аля "нужно собрать стату по этому говну с сайта и потом в пдф выгружать" и "прикрути мне сбор статы по кликам от жопы до шеи и потом отфильтруй" можно стать синьёром?
>>1327552 Так ты задание читай правильно. >Write a function that returns the string "Hello, World!". Написать метод, который возвращает строку "Hello, World!".
Остановился на этапе, где автор туториала прописывает mvc-dispatcher-servlet.xml
1. Сижу и думаю, какую зависимость добавить в pom.xml (и какие файлы создать), чтобы создавать веб-страницы через Spring.boot? 2. Или же лучше не использовать Spring.boot, а использовать Spring.MVC и обращаться к запущенному серверу TomCat?
>>1327527 >Двачую. Самый верный путь. Книг только не 1 а штук 5+ хотя бы. Одна-две из которых по алгоритмам. >Data Structures and Algorithms in java например. >Можно еще Кукбук почитать по джаве. >Это все не считая полной документации фреймворков и всяких вариаций жава ин практис. >По крайней мере это не говнораш, который тут их сммшик пытался пиарить.
Токсичный студентик, который гордится своим intermediate-английским.
>>1327759 >2 - лучше понять spring, перед тем как лезть в boot Я так понимаю, Spring.boot многое берёт на себя, в чём лучше разобраться самостоятельно?
>>1327761 Spring Boot берёт на себя конфигурацию приложения. Если заглянуть внутрь аннотации @SpringBootApplication, то там внутри будет аннотация @EnableAutoConfiguration, которая и проворачивает всю магию. При старте приложения Spring сканирует зависимости и создаёт экземпляры конфигурейшен-классов по умолчанию.
Например, из дебаг-лога: H2ConsoleAutoConfiguration matched: - @ConditionalOnClass found required class 'org.h2.server.web.WebServlet' (OnClassCondition) - found 'session' scope (OnWebApplicationCondition) - @ConditionalOnProperty (spring.h2.console.enabled=true) matched (OnPropertyCondition)
Spring задетектил, что я использую <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> Поэтому создал Configuration-класс с настройками по умолчанию. А именно, БД работает в in-memory режиме, а Hibernate настраивается так, чтобы автоматически при старте создавать схему из Entity-классов.
А вот обратный пример: JooqAutoConfiguration: Did not match: - @ConditionalOnClass did not find required class 'org.jooq.DSLContext' (OnClassCondition) Я не использую JOOQ, поэтому он не конфигурируется при старте приложения.
>>1327759 >1 - гугли Spring Boot web starter Суть в том, что я уже подключил Spring Boot web starter в pom.xml, у меня запускается Embed tomcat. Теперь мне нужно вместо hello world создавать hmtl-страницу, через которую я буду вбивать названия книг и читателей в MySQL. Штука в том, что большая часть внятных туториалов на эту тему используют Spring MVC, файл mvc-dispatcher-servlet.xml и сервер TomCat.
>>1327738 Братюнь, ты в начале запусти/потыкай все примеры использования Spring.boot с официального сайта. Там быстро поймёшь как сделать минимальный проект (без MVC) и запомнишь необходимые для этого 1,5 аннотации. Дальше ты уже будешь кумекать нахуя MVC и что он добавляет из ништяков! Ну и соответственно в начале дрочка mysql в консольке, затем jdbc, а после глядеть что там spring предлагает для удобства. Ещё JSP не забудь, бины прочекай и прочее гавно где xml дрочево
>>1327774 Я занимался по туториалу, где всё конфигурировалось в Джаве. Вот приложение: https://github.com/springframeworkguru/sfg-pet-clinic. Автор курса при этом сказал, что JSP нахер, сейчас все пересели на Thymeleaf. Вакансий с ним мало, но для приложения на коленке пойдёт - он очень прост и интуитивно понятен. Шаблоны на нём без ошибок можно открывать в браузере.
>>1327784 >что JSP нахер, сейчас все пересели на Thymeleaf Это для синьоров-помидоров или если повезёт для мидла-повидла! Тебя как ждуна посадят как обычно на поддержку уже готового проекта.
>>1327835 >у меня есть готовые классы для CrUD (DAO + Service). Для CRUD вообще ниичего писать не нужно. Подключаешь spring-boot-starter-data-jpa, который тянет за собой spring jdbc, hibernate и spring data.
Создаешь интерфейс, наследуешь его от org.springframework.data.repository.CrudRepository, и всё - репозиторий готов. Так же Spring Data имеет генерировать методы по сигнатуре (например, findByNameContainingIgnoreCase создаст тебе метод поиска книг по имени)
>>1327235 >return new ResponseEntity<>("User was successfully updated", HttpStatus.OK) >из контроллера пишет сразу в БД Ты шо, ебанутый? Пруф неси, что оно тебе записало в бд.
>>1327949 Там в тесте был сеттер, который писал в БД. Хибернейт прямо из сеттера без вызова save() пишет. Я его не видел прост. Но пока дебажил это были минут 20 ступора: как так не может быть и т.д. Даже суда запостил.
>>1327890 Не слушай долбоеба. Петклиник - это легендарный демо-проект, который как раз являет собой полноценное простое боевое приложение. Другое дело, что по шагам они не объясняют, а предлагают тебе самому во всем разобраться. Советую присмотреться к https://github.com/spring-petclinic/spring-petclinic-reactjs как к хайповому стеку и делать свою библиотеку по аналогии. Пляши от контроллеров.
>>1328017 Спасибо тебе! Я так и подумал, что Петклиник - это именно то, что мне нужно.
Пока я не следующем этапе: 1. Я собираю с нуля простейшие Spring.boot веб-приложения, в которые используют Контроллер и шаблоны html-файлов (Thymeleaf). Я правда не до конца понял, как Spring.boot выбирает шаблоны из папки Resources. Видимо, как и всё в этом 2. Как я понял, для создания CrUD я могу использовать spring-boot-starter-data-jpa или Hibernate (или их вместе).
В туториале https://youtu.be/e7swABdqOS4?t=165, как я понял, много лишнего, громоздкого и ненужного мне. Проще создать веб-интерфейс на Thymeleaf и связать его с MySQL при помощи boot-starter-data-jpa.
>>1328038 1) C# - 0.1% рынка 2) Дальше ковыряния в байтах ядра или ещё чего ты не пойдёшь, про бизнес-логику можешь забыть 3) Только аутисты могут на работе дрочить микроконтроллеры и прочую хуйню вместо того же вротенда
Где лучше хранить простую коллекцию объектов, в ArrayList или HashSet? Никакие плюшки конкретных имплементаций мне не нужны, только с точки зрения производительности.
>>1328032 1. Автоконфигурация starter-thymelef по дефолту смотрит шаблоны в resources/template. Это можно переопределить но надо пердолить с мавеном 2. Starter, внезапно, и еюзает хибернэйт. JPA - это просто API, а хибер - реализация этого API. Кстати, если встает вопрос юзать JPA API или проприетарные имплементации хибера (EntityManager vs SessionFactory), то выбирать надо в пользу JPA (хотя вроде есть хитрые штуки которые можно пердолить в хибере, но их уже давно никто не юзает)
В туторе юзается чистый спринг, без бута (как деды воевали кароч) и проприетарные методы хибера. Действительно, не нужно по современным меркам, но способствует более глубокому понимаю, что вообще за хуйня происходит
>>1328097 Как это фиксить? Идея не показывает красную полоскуобоже!! и не резолвит путь. Хотя все замечательно работает. Спринг бут2. В пом.иксимеле что стартер-тимлиф что просто тимлиф разницы никакой.
Тупой вопрос, как кидать кастомные ошибки на стандартные ситуации в Spring MVC? Например, есть эндпоинт /api/comments/{id}. id должно быть числом. Если я напишу что-то вроде /api/comments/abasbfqwf, то Спринг просто автоматически отправит ответ со статусом 400. А я хочу, например, отправить JSON типа {"message": "Invalid comment id, must be a number"}. Можно, конечно, сделать так, чтобы метод контроллера принимал строку, потом в методе делать Integer.parseInt(), ловить NumberFormatException и бросать своё исключение, но это идиотизм. Что делать? Писать кастомный HandlerMethodArgumentResolver?
>>1328113 Гугли @ControlerAdvice. Можно екстиндиться от ResponseEntityExceptionHandler и овверайдить дефолтные методы. + сделать свой класс для еррора где прописать вменяемый ответ в виде джейсона. Возвращать из методов что то типо ResponseEntity<ТвойЕрорКласс>. Вполне годно для реста. Для МВС-вебморды можно сделать /error и там сделать шаблонч с надписью все поломалось. Ну и там обработка в контроллере всего этого добра с логированием. А потом еще все это тестить. Это так, минимальный вариант.
>>1328116 Я знаю про ControllerAdvice, проблема в том, что я не знаю, откуда бросать исключение. Мне нужно либо самостоятельно проводить валидацию параметров запроса (до того, как они попадут в контроллер), либо каким-то образом отслеживать, что вот по такому-то эндпоинту было выброшено такое-то исключение и бросать своё исключение в случае необходимости. Думаю, для первого варианта подойдёт кастомный HandlerMethodArgumentsResolver.
>>1328127 @Valid на параметре в контроллере. На классе модели ставить параметры валидации. javax.validation.constraints* Аннотации отсюда. Исключения кидаешь из методов из сервис леера. В контролер эдвайсе что то типо: @ExceptionHandler(YourException.class) public ResponseEntity<Object> handleYourException(...){ логируешь тут, вовзращаешь ентити }
>>1328119 Это не кастомный фолдер. Это папка внутри стандартных темплейтс. В контролере папка даже не указана, просто возврат имени вьюхи. Все работает. Просто Идея показывает красную полоску + не дает авто заполнения пути до папки.
>>1328182 >Ну и как это без js сделать? Без JS никак. >нахуя мне вообще jsp тогда нужен JSP — это шаблон, который используется для начального рендера страницы.
>>1328182 >Я надеялся сделать без js, а то нахуя мне вообще jsp тогда нужен, можно же просто html юзать. Ну как бы да. JSP не нужны, можешь только в качестве шаблонизатора использовать.
>>1328187 >>1328188 >>1328192 Первый раз сел за jsp из-за того что в тестовом задании было такое условие. Была мысль что если там можно использовать жаву, то и данные можно динамически добавлять используя только её. Оказалось что нет. ну как бы и хуй с ним, сделал как сделал уже Теперь только один вопрос остался - зачем оно надо если есть js + html? Чтобы охуеть от того как можно?
>>1328204 >>1328202 Сначала вообще написали онли servlets + jsp. Ну я спросил про спринг бут, говорят юзай по желанию. Ну хоть с сервлетами не заставили сношаться
>>1328210 Как и всё остальное. Тебе в сервлет пришёл хттпРеквест, ты из него выдернул что надо, и погнали. В этом плане сервлеты и фильтры простые, как палка.
>>1328200 JSP и подобные технологии используются для динамического рендера html-страницы на стороне сервера. JS в таких приложениях используется для динамического обновления страницы на стороне клиента. Это довольно просто, удобно и дёшево. Писать фронт-энд чисто на JS, конечно, можно, и сейчас все так и делают. Но там тоже есть свои нюансы. Например, если у тебя бэк на Джаве, а фронт на JS, то для того, чтобы прикрутить тот же SSR, тебе придётся как минимум поднять ещё один NodeJS-сервак для фронт-приложения. Ну и да, добро пожаловать в удивительный мир бабелей, вебпаков и прочих JSSов. Тут всё зависит от потребностей приложения. Если у тебя "богатый" клиент с охуенно сложной логикой и кучей динамических элементов, то однозначно лучше писать его на JS-фреймворке. Если же у тебя простенькая веб-морда, то JSP/Thymeleaf с жиквери и бутстрапом вполне может хватить.
>>1328200 Jsp было создано для того, чтобы вынести логику представления. Jsp компилируется в сервлет. Чтобы разработчики не писали и html и business logic в сервлетах, придумали jsp, которые позволяют разделить ответственность.
>>1328158 Да чо ты доебался до этого таймлифа? Вообще не слышал, чтобы он где-то юзался. Или JSP/JSF или уж тогда, по-человечески, на каком нибудь ангуляре
Коллеги, есть проект на Spring.Boot, в котором: 1. Есть pom.xml, в котором прописаны: spring-boot-starter-web spring-boot-starter-data-jpa mysql-connector-java hibernate-core hibernate-entitymanager
2. Есть model (book) с аннотацией @Entity, переменные с аннотациями @Column
@Id @Column(name = "ID") @GeneratedValue(strategy = GenerationType.IDENTITY) private int id;
3. Есть репозиторий BookDAOImpl @Repository, пример метода:
4. Есть сервис BookServiceImpl @Service, пример метода:
@Override @Transactional public void addBook(Book book) { this.bookDAO.addBook(book); }
MySQL запущен, в application.propetries database=mysql spring.jpa.hibernate.ddl-auto=none spring.datasource.url=jdbc:mysql://localhost:3306/bookmanager spring.datasource.username=нутыпонел spring.datasource.password=нутыпонел
При запуске ругается на: 1) The server time zone value 'RTZ 2 (çèìà)' is unrecognized or represents more than one time zone. В Таблице есть графа 2) org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource 3) Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] 4) Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
Цель: подключить моё приложение на Spring.Boot к MySQL Вроде всё правильно делаю?
>>1328389 Братюнь, если ты не можешь готовый проект собрать, и вместо гугления ищешь совет на дваче, по просто сделай шаг назад. >spring-boot-starter-web >spring-boot-starter-data-jpa >mysql-connector-java >hibernate-core >hibernate-entitymanager Ты вначале с каждой из этих залуп в отдельности поебись! К примеру возьми только "spring-boot-starter-web" и запили с этим хелоуворд. Так ты поймёшь кишочки и что под капотом... Постепенно усложняй проект добавляя разную хуиту. Тыж пограммист а не макака!
>>1328398 >К примеру возьми только "spring-boot-starter-web" и запили с этим хелоуворд. Ну скажем с этим я уже разобрался. Отдельно Spring.boot-проект с spring-boot-starter-web запускает эмбдед Кота и генерит hello-world. От этого можно переходить к созданию темплейта для формы внесения данных.
Но у меня проблема именно с SQL возникла, хотя по логике проекта это должно работать.
>>1328400 >генерит hello-world >От этого можно переходить к созданию темплейта для формы внесения данных А что тебе мешает вместо хелоу ворда запилить форму внесения данных? Без всяких там темплейтов?
>>1328389 >private SessionFactory sessionFactory; Я почитал документацию и понял, что мне нужно: 1. Дропнуть Hibernate из pom.xml (Spring.boot и так запустит Hibernate), достаточно просто JPA. 2.Вместо SessionFactory sessionFactory использовать EntityManagerFactory.
Сегодня вечером освобожусь, попробую переписать всё.
>>1328421 Ты блядь без него сделай в начале, оптом с JSP а потом если мало будет Thymeleaf-ом подтирайся! Вот ты сука тупой дебил! Посмотри сколько вакансий на хх с JSP и Thymeleaf!
>>1328432 >Ты блядь без него сделай в начале, Ну и как ты сгенерируешь динамическую таблицу без какого-либо инструмента вроде JSP, Thymeleaf или Angular?
>>1328462 >>1328461 Мне кажется, что он хочет чтобы можно было патыкать кнапочки на local-host и скинуть скриншотик в общий чат беседки погромистов какой он молодец, а не долбится с вашим рестом и принимать за щеку откуда-то инфу
>>1328438 >>1328461 >>1328462 Контроллер функция которая return String. И в этот String вместо "<h1>Hello World!</h1><p>Я у мамы пограммист!</p>" Хуярь что там тебе нужно, <form action>, <input>, <хуй>, <пизда>. Динамическую таблицу через StringBuilder сообразишь наверное как сделать!
>>1328464 >Контроллер функция которая return String. >И в этот String вместо >"<h1>Hello World!</h1><p>Я у мамы пограммист!</p>" >Хуярь что там тебе нужно, <form action>, <input>, <хуй>, <пизда>. >Динамическую таблицу через StringBuilder сообразишь наверное как сделать! Окай
Чет попытка привязать бутстрап + жкваери сложнее самого спринга оказалась. + С тегами тимлифа бустрап отказывается работать. Делаю через пом: <dependency> \t\t\t<groupId>org.webjars</groupId> \t\t\t<artifactId>jquery</artifactId> \t\t\t<version>3.3.1-1</version> \t\t</dependency> \t\t<!-- https://mvnrepository.com/artifact/org.webjars/popper.js --> \t\t<dependency> \t\t\t<groupId>org.webjars</groupId> \t\t\t<artifactId>popper.js</artifactId> \t\t\t<version>1.14.1</version> \t\t</dependency> \t\t<!-- https://mvnrepository.com/artifact/org.webjars/bootstrap --> \t\t<dependency> \t\t\t<groupId>org.webjars</groupId> \t\t\t<artifactId>bootstrap</artifactId> \t\t\t<version>4.1.1</version> \t\t</dependency> \t\t<dependency> \t\t\t<groupId>org.webjars</groupId> \t\t\t<artifactId>webjars-locator</artifactId> \t\t\t<version>0.30</version> \t\t</dependency>
И в самом хтмл файле : <link rel='stylesheet' th:href="@{/webjars/bootstrap/css/bootstrap.min.css}"> <script th:src="@{/webjars/jquery/jquery.min.js}"></script> <script th:src="@{/webjars/popper.js/umd/popper.min.js}"></script> <script th:src="@{/webjars/bootstrap/js/bootstrap.min.js}"></script>
Оно работает но как то криво пиздец. Например кнопочки <button type="button" class="btn btn-success">This is a success button</button> Выглядят нормально Навбар выглядит уебищно. Если соеденять с тегами тилифа то ломается нахуй вообще.
Есть два списка одинаковой длины. В одном пики точены List<Pika> piki, а в другом хуи дрочены List<Huy> huyi.
у каждой пики есть метод void cutHuy(Huy h);
как срубить все хуи? то есть первой пикой первый хуй, второй пикой второй хуй, и т.д. Желаю читаемых или модных решений через стримы. Не желаю это делать так:
int counter = 0; for (Pika pika: piki) { pika.cutHuj(huji.get(counter)); counter++; }
>>1329382 Пересобрал проект через мейвен и все стало норм. Странное дело. Можно теперь прям копипастить с сайта бутстрапа и все 1 в 1. Все таки вебджар локатор хорошая весчь.
>>1329678 >zalando problem Загуглил. Позже обязательно поковыряю. Но уже каштомных хендлеров наклепал под вменяемые ответы в жейсоне. Так что пусть будет.
Хочу создать массив массивов разной длины. Ещё было бы охуенно, чтобы можно было при инициализации вкладывать другой уже инициализированный массив. Или мне ебаться со списками? Но я не знаю, как они сходу заполняются при инициализации так одной строчкой.
>>1329437 Как тебе и посоветовали лучше не выебываться, но если сильно хочешь пофункциональничать, то нужен zip, вот только беда - его не завезли, написать его не сложно, но в стандарт он не вошел.
>>1330126 Читай дальше, неосилятор: >Тут обычно следует реплика: «Теперь вы можете делать всё с помощью аннотаций! Больше никакого XML!». Здорово, когда не нужно программировать на XML, но аннотации — это всё ещё магия. Пока вы не запустите приложение, вы понятия не имеете, свяжется ли оно правильно. И даже потом вы не знаете, правильно ли оно связалось; вы всего лишь знаете, что оно связалось.
>>1330128 >Про аннотации в самой же статье сказали, а про магию — ну извините, это инверсия. В любой инверсии вам придется знать ЧТО именно делает каркас к который вы встраиваетесь — это не магия спринга это магия DI. Если ты сам не знаешь, что ты пишешь, то фреймворк тебе тут не поможет.
Правильно ли я понимаю следующее. 1. Spring.boot без дополнительных фремворков позволяет создавать динамические веб-страницы. 2. Существует ряд фреймворков для создания веб-страниц, включая JSP, Thymeleaf, Angular. Посоветуйте, пожалуйста, хороший туториал по созданию динамической веб-страницы базовыми средствами.
>>1330315 Ну есть 2 варианта: 1. Рендер на сервере и возврат html-страницы клиенту. Для этого используются обычные контроллеры + JSP или Thymeleaf для шаблонов. 2. Rest API (@RestController) на сервере + JS-клиент, который страницу динамически заполняет данными самостоятельно. Если не знаешь js и его фреймворков, выбирай первый вариант.
>>1330377 >Спринг.бут выплёвывает тебе в браузер то что ты ему скажешь. Мне не вполне понятно, как заставить Спринг.бут выплевывать что-то сложнее hello world. Все туториалы, на которые я натыкаюсь, используют Thymeleaf.
Ребята, порекомендуйте ультра-супер-легкий IoC-контейнер. Два требования:
1) исходный код о его существовании знать не должен, никаких @Inject; 2) конфигурять его исключительно через XML. Другие форматы, если такие вообще бывают, тоже рассматриваю, главное, чтоб не через Java/другой ЯП, потому что конфигурацию будет писать конечный пользователь.
Очень хочу Spring, но можно ли его включить в проект с минимальными зависимостями, чтоб работал только IoC?
Опытные аноны, разъясните один момент. Вот я реализовал rest api, прикрутил к нему oauth2-авторизацию, но я не пойму как реализовать регистрацию пользователей (не клиентов, а обычных юзеров). Я смотрел несколько популярных api с oauth2 и ни в одном из них нет регистрации. Как я понимаю, смысл oauth в том, чтобы сторонний клиент не видел пользовательского пароля, и в таком случае регистрация/смена пароля через api не имеет смысла, верно? Короче говоря, как правильно делать регистрацию с oauth2?
>>1319608 (OP) Кто-нибудь может объяснить мне эту магию свинга? Есть JTextArea с JScrollPane, а так же кнопка, в обработчике которой вызывается метод textArea.getDocument().remove(0,2) при этом вертикальный скролл сразу же смещается наверх, причем, если в textarea изменить/вставить/удалить символ, то метод remove не дергает скролл. Wtf?
>>1330998 Как я понял, OAuth просто предоставяет данные о пользователе не предоставляя его пароль, тип какой нить гугл говорит этот челик заебца, ему можно верить. Смысла делать смену пароля действительно нет, так как пароль контролируются ресурсом, предоставлящим данные
Обмазался JDBC, но у меня вопрос. Встречается упоминание запилить круд на Spring JDBC. Что блядь под этим подразумевается? Использование jdbctemplate? Hibernate?
Написал простой КрУД на Spring.boot, в качестве загрушки поставил H2, потом переключу на MySQL. Сейчас главное - разобраться с фронтендной составляющей, которая мне ещё не до конца ясна. Дальше добавлю регистрацию пользователей, управление базой, пользователями, и будет готовая, работающая CRM.
ЧСХ, процентов 90 времени копался в документации, 10% времени писал код. Проследил эволюцию Spring от эпохи множества xml-конфигураций до нынешней эпохи аннотаций. По сути, Spring.boot - это фреймворк для управления... фреймворком Spring. Мне кажется, это всё не очень хорошо. Надо посмотреть, насколько проще эта же задача решается под .NET
>>1331812 Нужно было по чужому примеру делать круд, там бы сразу практические задачи решал, у меня был пример без бута, с сервлетами или хуй пойми как они называются и сразу c jdbc ну и конечно ещё с jsp вот я там говна хлебанул, ебать нахуй, весь стакоферфлоу переебал. И самый лол там ещё и бины были. Конечно я до этого спрингбутовые хелоуворды с оф сайта тыкал, так уже понимал что куда.
>>1331907 >Нужно было по чужому примеру делать круд Мне важно иметь понимание того, что я делаю, по шагам. Вот, скажем, шаг 1 - зачем он, к чему он ведёт? И так далее.
>>1331971 Ну ты когда проект сморишь ты же код набираешь сам, пока набираешь уже понимаешь, если что меняешь как захочешь, если не получается смотришь ошибки и гуглишь как нужно делать, помимо этого там в спринге одно и тоже можно сделать разными способами и будет работать. Там конечно может есть каноничное решение, но я по быстрому протыкал и понял что и так и так работает.
Аноны, какая ОС лучше подходит для разработки автотестов Java + selenium ну и плюс сопутствующая хуета эта вся. Стоит ли переходить на linux? Какие плюсы будут с перехода? Понимаю, что не совсем этот тред, но где еще спрашивать если не здесь.
>>1332042 >Стоит ли переходить на linux? Какие плюсы будут с перехода? Давно уже убунту бы поставил! Меньше будешь в игори играть а больше делом заниматься. Будешь богом консоли и повелителем вима с емаксом!
>>1331387 Ну если у тебя сервер свой и клиент свой, то делай авторизацию через логин и пароль (user credentials flow). Другие способы (например implicit flow) используются для сторонних клиентов.
>>1332353 Зато помнить будешь именно какие проблемы решал, то что работает скописпастил и забыл! >>1332400 Можешь любой, на оф сайте хелоуворды с разными от жквери до ангуляра
>>1332983 Ага, а потом решил обновится до jdk 11, забыл что там нету javafx и проебался еще час. Зато не десятилетнюю. И какая вообще разница, насколько старыми технологиями выводить окошко с одной картинкой?
>>1333520 Сам себя на 0 делишь. >там нету javafx >какая вообще разница Из-за того что технология старая и бесполезное говно Swing и то лучше её перестали поддерживать и в новых версия её нет. А теперь на пару лет вперёд загляни. К примеру в 15 тоже не будет fx, а у тебя будет. Будешь пердолить легаси на 8?
>>1333529 Так-то у Джавы много чего популярного в опенсорсе, я бы даже сказал большинство фреймворков. Те же Спринг и Хибернейт. Так что это не значит, что FX похоронен.
https://pastebin.com/iDwyKyki Достаточно MVC-шно? Или лучше метод updateColor перенести в контроллер? И еще запуск приложения через метод init это какая-то хуита, но для FX я не нашел других вариантов.
Посоны, читаю Spring in action 5. Поясните за WebFlux. Это правда что-то революционное и на этом стоит заострить внимание или это виение моды и поделка для смузихлебов?
>>1333552 Неплохо. Австралийский мужик с пика научит Яве 7-8 и чуть-чуть 9, много про SQLite-JDBC, JavaFX, Concurrency, I/O. Про фреймворки там не слова. Это энтрилвл, наверное, но лучше всех бесплатных курсов (с codeacademy и audacity).
Когда можно начинать ходить на собеседования? Например я выучил java core, java ee, hibernate, немного js. Обязательно учить spring? Пол-года зеленого гитхаба. Стоит пытаться?
>>1335019 >Стоит пытаться? Ты вакансии чекал что там просят от ждунов? >java ee Что из этого знаешь? Бины ебанные? И где чистый sql? Я чекал тесовые и обычно все просят круд разной степени сложности, срок дают примерно неделю. У ты должен знать html, css, javascript на уровне запилить не уродскую форму и сделать валидацию полей (хотя могут попросить bootstrap прикрутить) Бд обычно просят на jdbc JSP естественно, для данных могут попросить спарсить из хорошо документированного источника и ОБЯЗАТЕЛЬНО будет какая-то хуита которую ты точно не знаешь! Там специально подбирают ёбатню где только документация на английском, и таким образом проверяют как быстро ты можешь реальную проблему решать.
>>1335538 Запили фейк ждуна на хх, с вузиком профильным и минимальной информацией. Проси тестовое задание на фейк почту. многие игнорируют, или отказывают но пару тройку тестовый получишь.
>>1335599 >Джуну на жаве нужен фронт? С каких пор? Хули ты споришь со мной? Внимательно вакансии почитай и тестовые задания посмотри. >Какое ждбс? Откуда ты вылез блять. Из 2007? Ты думал ждуна в модный стартап возмут писать на свежем смузи фреймфорке? А что там в jdbc сложного? Проверить как ждун на чистом sql шпарит
>>1335709 >Хули ты споришь со мной? Внимательно вакансии почитай и тестовые задания посмотри. Он прав. Никто не просит от тебя ксс-ов. Хватает банального знания выставления <form> для контроллеров.
>Ты думал ждуна в модный стартап возмут писать на свежем смузи фреймфорке? А что там в jdbc сложного? Проверить как ждун на чистом sql шпарит Да даже и не в модный, нигде чистый jdbc не юзают. Следи за руками extends CrudRepository
Запускаю телеграмбота процессом worker на хероку. Процесс запускается, но бот молчит как рыба об лёд. Нужно ли ковырять pom.xml или нужно менять Procfile? В сети гайды противоречат друг другу.
Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?
А: Нет, не поздно.
Q: Cобираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?
A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред.
Q: Хули все книги на английском?
A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Что скажете за джавараш?
Если вкатываешься с нуля, то можешь написать пару "хеллоу ворлдов" до 10 лвла. Дальше курс рассчитан на ленивых и не умеющих читать книжки людей. Количество говнокода зашкаливает, годных задачек пару штук на весь курс. В любом случае решать тебе.
https://github.com/qqqlll/Java-Thread/wiki