Это копия, сохраненная 4 мая 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?
А: Нет, не поздно.
Q: Cобираюсь учить джаву по 2/5/20 часов в день. За сколько дней я выучу достаточно, чтобы зарабатывать фрилансом?
A: На джаве фриланса нет. Хочешь фрилансить — дуй в ПХП/раби/1С тред.
Q: Хули все книги на английском?
A: Без английского ты не нужен и можешь смело идти нахуй. Ну или в 1С-тред.
Q: Что скажете за джавараш?
Если вкатываешься с нуля, то можешь написать пару "хеллоу ворлдов" до 10 лвла. Дальше курс рассчитан на ленивых и не умеющих читать книжки людей. Количество говнокода зашкаливает, годных задачек пару штук на весь курс. В любом случае решать тебе.
https://github.com/qqqlll/Java-Thread/wiki
Это я уже кажется осознал.
Поставить Eclipse, импортировать проект в него и разрабатывать проект оттуда. Нахер ты вообще полез в шлако-IntelliJ?
Эклипс выдает 720 ошибок, у меня подозрение, что по тем же причинам, что и идея. А у самой intelij idea интерфейс приятный очень, имхо.
Ты плагин для Eclipse собираешься в IntelliJ делать, она для этого не приспособлена.
Ну я ламер, хули. Благодарю за помощь.
Он про Qt Core, но все равно не нужно.
Пиздец ну и убожество, нахуй это надо когда есть божественный електрон
Чтобы на собесе тимлид потек от моих знаний BPP
Во всех вакансиях требуют сука вышку, без неё можно даже не откликаться или просто для галочки пишут?
Можно даже не откликаться. А если тебе больше 23 то тут только в окно, ибо в этом возрасте ты уже отработанный материал.
Swing не считается.
Есть аннотации Annotation1 и Annotation2, причём Annotation2 помечена Annotation1 (@Annotation1 public @interface Annotation2).
Нужно написать pointcut, который бы ловил вызовы любого RequestMapping-а (в том числе и GetMapping/PostMapping), помеченного Annotation1 (и, соотвественно Annotation2).
Примеры:
@RequestMapping @Annotation1 - ловим
@RequestMapping @Annotation2 - ловим
@GetMapping @Annotation1 - ловим
@Annotation1 - не ловим
@PostMapping - не ловим
Пробовал, но не работает: @Pointcut("@annotation(Annotation1) && @annotation(RequestMapping) && execution(ЗВЗДЧК ЗВЗДЧК(..))")
С меня как обычно.
И что нужно уметь, чтобы тебя взяли в интересный проект? Ты сам на день дрочишь или тебе по кайфу кодить?
>Head First Java, (2nd Edition) by Kathy Sierra, Bert Bates - для совсем нулячих простым языком.
>Core Java (10th edition) by Cay S. Horstmann, Gary Cornell - тоже для нубасов, более полный академический курс.
>Effective Java (2nd Edition) by Joshua Bloch - для тех, кто знает джаву, но хочет перестать писать костыли.
Здесь нет полноценной программы обучения. Что делать после того, как освоил первую книгу из списка?
Абстрактный имплементит WebApplicationInitializer. Он специально предназначен для регистрации диспатчер сервлета и с ним это делать банально удобнее, вот и вся разница, насколько я помню.
Если есть опыт программирования - я бы порекомендовал не по языку книжку читать, а по конкретным технологиям, например учить Spring, Hibernate и прочие сервлеты. Синтаксис Си-подобный, а задумываться об каких-то там особенностях JIT-компиляции, управлении памятью и прочих байтоебских вещах - в тырпрайзе за такое увольняют махом.
>Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?
>А: Нет, не поздно.
На сколько это пиздеж?
Зависит от того какие цели ты преследуешь. Если для себя, для души - то не поздно. Если есть надежда вкатиться в 300кк в наносекунду жирный заработок без напряга - во-первых столкнёшься с предубеждениями на тему возраста, а во-вторых - нету в айти жирного заработка без напряга, нужно от души въебывать чтобы выйти на приличный уровень.
Сейчас просто по фану. Потыкал разные языки и сферы: юнити, мобилку, фронтенд. Понравилось с бд и бекендом ковыряться, для работы чет делаю.
Но конечно же хотелось бы вкатиться. Непонятно просто стоит ли рвать пупок подготовкой к собеседованием, если по возрасту фильтранут.
Понятно, что тут 3/4 пиздеж и провокация.
Но тем не менее, возможно ли это? Встречали ли вы подобных людей? Какого рода это проекты? Какую проблему они решают? О чем хоть в принципе может идти речь?
Только, пожалуйста, не рассказывайте мне про смузи-стартапы.
Я фуллстак джун (3 месяца), стек Java EE + Dojo JS
На работе обычные будни веб макаки: веб сервисы, формы, гоняю Xml через очереди
Прогресс меня совсем не радует, по этому сижу дома обучаюсь.
Залабал пару тупых веб-проектиков дома для практики на Java ee + WIldFly + Postgres. SE вроде более менее знаю, коллекшнс тоже более менее, конкарренси не знаю совсем.
Хочу в ближайшем будущем сьебать в нормальную контору (скорее просто сьебать отсюда), в связи с этим вопрос:
чо дальше делать, как развиваться?
-Дальше вьезжать в java ee (книжки хуижки по ЕЕ)
-Подтянуть фронт (пересесть с иглы dojo на react)
-Выучить конкарренси и жестко влезать в основы SE с помощью книжек
-Пойти нахуй в спринг?
>На джаве фриланса нет
а приложения на андроид писать?
> Пойти нахуй в спринг?
Самое мудрое решение, преобладающее большинство вакансий - на Спринг. Однако чистый бэк/фронт нынче редкость, так что фронт тоже подтяни. Я бы посоветовал Ангуляр либо Реакт.
Если перекатываться в другую страну хочешь - нужна будет. Для галочки, но нужна.
Она никогда не была нужна. Не диплом красит человека, а человек диплом. Люди ошибаются, когда возлагают всю ответственность за себя на получение диплома. Будто бы что-то изменится, когда ты получишь заветную корочку. Если ты не будешь работать над собой то, ты некогда не добьёшься успеха в жизни. У многих молодых людей получение диплома - это цель, но не каждодневная работа над собой.
Анон, - это копипаста. Я её каждый день вижу в постах. Блять. И не лень же постить эту хрень.
Что именно паста? Если пост от джуна, то чини детектор
В моих сранях 100% вакансий начинаются так: высшее техническое образование. В одну контору откликнулись на вакансию СТАЖЕРА со знакомым, у него 3 курса профильной вышки, у меня гуманитарная законченная + больше плюшек вроде гитхаба, курсов и англиского. Мне даже не ответили, его после собеса и тестового позвали.
Если ты по скилам fullstack middle, вышка уже никого не ебет
Нужно получать ввод от пользователя (ну то что он пишет в консоль) и как-то это сохранять, для дальнейшего просматривания. Само собой я изи это настраиваю сканнером, но что если мне нужно сохранить не одну строчку, а целый текст от пользователя? С переносами строк, пустыми строками и тд? Я только месяц-два изучаю, но я реально офигел, неужели нет предусмотренного способа делать это, стандартного какого-то? В инете везде советуэт (если я правильно гуглю) юзать сканнер со всякими hasNextLine, hasNext и тд. Но когда я читаю документацию по этим вещам, нихуя непонятно.
Как это можно просто устроить? Если я за пару месяцеа понял всякие массивы, наследование и прочее, композишн всякий и тд, а как получить инпут не в одну строку всего, можно забивать хуй? Мне реально интересно и я пытаюсь научиться, но смотрю на стак оверфлоу советы, и там только куча новых вопросов встает.
Если кто-нибудь из здесь сидящих пояснит подробно как это можно сделать, или хотябы в какую сторону копать, что читать, буду супер благодарен.
П.С. Я читаю книгу по джаве и иду по большому видео курсу, с этим все окей, а вот эта проблема возникла при работе над своей криво аппкой, которую делаю, чтобы практиковаться. Жто же норм способ учиться, как думаете?
Столкнулся с проблемой в Spring Security. Я хотел бы чтобы вход на сервис был из одной таблицы (User), а в добавок к ней была еще пара таблиц (UserInfo, WorkerInfo), ведь у пользователя (как и у работника) есть поля, которые не добавить в общую таблицу, например опыт работы в этой организации может быть только у сущности Работника.
Разумеется при таком подходе связь должна быть односторонней, так как я не могу добавить в User описание и UserInfo и WorkerInfo, User всегда должен быть кем то одним.
На пике №1 мой класс User.
На пике №2 мой класс UserInfo.
На пике №3 мой класс WorkerInfo.
Правильно ли я делаю? Эта реализация - первое что пришло мне в голову, так что я не уверен, может быть есть варианты лучше.
Этот подход вызывает большие проблемы и вообще путает меня самого, чтобы зарегистрировать нового пользователя мне приходится лишний раз идти в бд, искать там пользователя, брать его ID и вручную подставлять его в UserInfo. Это показано в пост маппинге на пике №4.
Большая просьба, не кидаться в меня говном, я всего лишь учусь, и чего-то могу не понимать. Спасибо.
Возможно ли с помощью джавы каким-то образом брать текст с открытой игры? А именно из чата игры.
Как вообще подобную тему можно реализовать, возможно ли считывать с "экрана"? И на сколько сложно это, если возможно.
Запомни главный совет вкатывальщику: не понимаешь - гуглишь. Не находишь быстрого и понятного ответа - оставляешь. Именно оставляешь. На определенном этапе ты пока не в состоянии все понять и осознать. Прежде всего тебе нужно исследовать границы карты, темные места будут заполняться сами.
Двощ, я не погромист, только учусь. Подскажи пожалуйста, где я обсераюсь?
Задание: Обратить токены в строке. Токеном является набор символов, разделенный пробелми. В простонародии: слово. Просим обратить внимание что сами токены должны остаться в том порядке в котором они и были до этого, однако символы в них должны быть в обратном поряке.
Пример:
на входе: "input string to the method test2"
на выходе: "tupni gnirts ot eht dohtem 2tset"
Мой алгоритм:
1)если счётчик строки дошёл до искомого символа,
2)берём подстроку от индекса "0" до искомого символа(пробела),
2) реверсим её(стриг билдером)
3) и добавляем в construct
4)После этого добавляем строку в "deliter"(объект класса стринг билдер),
5)удаляем этот кусок(от индекса "0" до искомого символа(пробела))
6)переводим в строку,
7)результат присваиваем изначальной строке
Мой код:
```
Code (possible spoiler)
public static void task2(String in) {
StringBuilder sb = new StringBuilder();
StringBuilder construct = new StringBuilder();
StringBuilder deliter = new StringBuilder();
for (int i = 0; i < in.length(); i++) {
if (in.charAt(0) == ' '){
in.trim();
}
if (in.charAt(i) == ' ') {
sb = new StringBuilder(in.substring(0, i));
construct.append(sb.reverse());
construct.append(" ");
deliter = new StringBuilder(in);
deliter.delete(0, i);
in = deliter.toString();
System.out.println(construct);
}
}
}
```
Результат вывода в консоль:
```
tupni
tupni gnirts
tupni gnirts dohtem eht ot
Process finished with exit code 0
```
В финальной версии убираю пробелы в начале и в конце строки, чтобы исключить подобную ошибку, но проблема явно не в этом. Также я вижу, что код не учитывает вариант, когда пробелов уже не осталось, но проблема возникает не на этом этапе, потому пишу этот пост. Вижу, что насрал СтрингБилдерами, но это исключительно ради собственного удобства восприятия кода, потом уберу, проблема не в них
Двощ, я не погромист, только учусь. Подскажи пожалуйста, где я обсераюсь?
Задание: Обратить токены в строке. Токеном является набор символов, разделенный пробелми. В простонародии: слово. Просим обратить внимание что сами токены должны остаться в том порядке в котором они и были до этого, однако символы в них должны быть в обратном поряке.
Пример:
на входе: "input string to the method test2"
на выходе: "tupni gnirts ot eht dohtem 2tset"
Мой алгоритм:
1)если счётчик строки дошёл до искомого символа,
2)берём подстроку от индекса "0" до искомого символа(пробела),
2) реверсим её(стриг билдером)
3) и добавляем в construct
4)После этого добавляем строку в "deliter"(объект класса стринг билдер),
5)удаляем этот кусок(от индекса "0" до искомого символа(пробела))
6)переводим в строку,
7)результат присваиваем изначальной строке
Мой код:
```
Code (possible spoiler)
public static void task2(String in) {
StringBuilder sb = new StringBuilder();
StringBuilder construct = new StringBuilder();
StringBuilder deliter = new StringBuilder();
for (int i = 0; i < in.length(); i++) {
if (in.charAt(0) == ' '){
in.trim();
}
if (in.charAt(i) == ' ') {
sb = new StringBuilder(in.substring(0, i));
construct.append(sb.reverse());
construct.append(" ");
deliter = new StringBuilder(in);
deliter.delete(0, i);
in = deliter.toString();
System.out.println(construct);
}
}
}
```
Результат вывода в консоль:
```
tupni
tupni gnirts
tupni gnirts dohtem eht ot
Process finished with exit code 0
```
В финальной версии убираю пробелы в начале и в конце строки, чтобы исключить подобную ошибку, но проблема явно не в этом. Также я вижу, что код не учитывает вариант, когда пробелов уже не осталось, но проблема возникает не на этом этапе, потому пишу этот пост. Вижу, что насрал СтрингБилдерами, но это исключительно ради собственного удобства восприятия кода, потом уберу, проблема не в них
String[] words = str.split(" ");
for (String word: words){
sout (new StringBuilder(word).reverse().appent(" ").toString();
}
String input = "mamku tvoiu ne ebal";
String[] tokens = input.split(" ");
StringBuilder reversed = new StringBuilder();
for (int i = 0; i < tokens.length; i++) {
reversed.append(new StringBuilder(tokens).reverse());
if (i < tokens.length - 1) reversed.append(" ");
}
System.out.print(reversed.toString());
макака имдексы пожрала, ну да похуй
Это так не работает. Дебаж, поставь после каждой итерации sout.
В данном случае тебе указали, что неплохо бы подучить джава кор.
А то ты сейчас еще свои алгоритмы сортировки писать начнешь.
Каждый файл должен коммититься в отдельности что ли?
Я просто вообще почти не вникал в логику Гитхаба, сейчас она мне остаётся непонятной, просто в лекциях упоминался Гитхаб и ультимейт версия Идеи предоставляет инструменты работы с гитом и Гитхабом и я решил понять, что с этим можно сделать хотя бы на базовом уровне - уже потом буду знакомиться более плотно.
Хуй знает. Если тебе тах хочется поебаться с сабстрингами, то вот типа того
public static void task2(String in) {
StringBuilder sb;
StringBuilder construct = new StringBuilder();
int nextToken = 0;
for (int i = 0; i < in.length(); i++) {
if (in.charAt(i) == ' ') {
sb = new StringBuilder(in.substring(nextToken, i));
construct.append(sb.reverse());
construct.append(" ");
nextToken = i+1;
}
if (i == in.length() - 1) {
sb = new StringBuilder(in.substring(nextToken));
construct.append(sb.reverse());
}
}
System.out.println(construct.toString());
}
>мне приходится лишний раз идти в бд, искать там пользователя, брать его ID и вручную подставлять его в UserInfo
Зачем? Ты можешь просто делать setUser у кандидата и все само подставится.
>я не могу добавить в User описание и UserInfo и WorkerInfo
Ну вообще можешь (одна из связей будет всегда пустой у конкретного юзера, ну и что), и вполне вероятно, тебе все равно еще понадобятся эти связи. Надо только не делать их eager.
Я в /b/ продублировал пост, посоветовали пойти нахуй к User добавить @MappedSuperclass, а UserInfo и WorkerInfo унаследовать от User.
https://2ch.hk/b/res/192993460.html (М)
Так что же лучше?
>Я в /b/ продублировал пост
Вот ты наркоман
>UserInfo и WorkerInfo унаследовать от User
Можно и так, но минус тут - не сможешь сделать селект только из таблицы юзеров, обязательно будут джойны с дочерними таблицами, потому что теперь у тебя как бы просто юзеров не бывает, нужно узнать конкретный тип. ООП-иерархии не то что бы очень хорошо ложатся на реляционку. Отсюда потом обычно начинается нытье, что ORM генерирует избыточные кривые запросы, вытягивающие полбазы. Но для курсовой может это все и не важно.
> В данном случае тебе указали, что неплохо бы подучить джава кор. А то ты сейчас еще свои алгоритмы сортировки писать начнешь.
Ну вот спорно. Я когда вкатывался, делал такие задачки в двух экземплярах - "как написал бы на работе" и "попробую реализовать всё сам".
>ультимейт версия Идеи
Ты долбаёб?
С гитом обычная работает изи, но тебе нужно научитсья для начала в консоле работать с гитом.
>Каждый файл должен коммититься в отдельности что ли?
Смысл гита в том что можно откатать предыдущую версию...
Читай официальный сайт!
Значит, я не обращал внимания.
>для начала в консоле работать с гитом
Так вышло, что я вынужден был пользоваться в итоге именно консолью, потому что не понимал требования Идеи ко мне, когда пытался сделать коммит.
Сайт буду читать, спасибо, никуда не деться.
Лох.
Long l2 = 127L;
if(l1==l2){
System.out.println("Ok, vse horosho");
} else {
System.out.println("Vse OCHE ploho. Send RAM");
}
Long q1 = 129L;
Long q2 = 129L;
if(q1==q2){
System.out.println("Ok, vse horosho");
} else {
System.out.println("Vse OCHE ploho. Send RAM");
}
Ебать жаба говнище лоол
Мне на глаза попадались новости что джавка то уже нихуя не бесплатная и Оракл пердолит за использование на проде. Это правда или нет?
Т.е. в то время как майкрософт запилил опенсорсный дотнеткор с сисярпом, джава стала платной. Как так то джаваны
Немного не понимаю, почему если сравнивать объекты Лонг с ссылкой на значение, умещающееся в примитив байт, то объекты равны, а если сравнивать с примитивом большего размера, то уже не равны по ссылке?
недавно изучаю джаву, не бейте
А, понял, извините за невнимательность.
>борщехлебы, не написавшие ничего сложнее хв рвутся итт
Все аналогично типу Integer, подробнее здесь:
http://www.catchexceptions.com/java/integer-constant-pool-in-java/
Коротко: в жаве есть пул значений целочисленных wrapper типов, т.е. Byte, Short, Integer, Long. Ширина пула - значения от -128 до 127 (хотя для Integer может быть и шире, см. JVM option java.lang.Integer.IntegerCache.high). Этот пул инициализируется лениво (т.е. при первом обращении к нему), но сразу весь и целиком - все 256 значений. Это можно увидеть в блоке статической инициализации, скажем, класса Long.LongCache.
Если объект инициализируется не через new, а неявно, путём боксинга, то первым делом жава проверяет кэш соответствующего класса ("а не инициализировали ли мы уже это значение таким образом прежде?") и если значение есть в кэше, то возвращается соответствующий ему объект вместо создания нового. Это можно увидеть в методе valueOf любого из упомянутых классов.
Основная мотивация - значения из этого диапазона используются очень часто, намного чаще других, так что нет смысла плодить кучу одинаковых объектов под них, памяти жалко
Это кстати в JLS описывается
Спасибо!
1) что надо знать по спрингу для того чтобы попасть на стажировку ? Пока только прошелся по всяким бинам, базам данных и простой секьюрити. Надо смотреть в сторону аоп? В одних туториалах сразу начинают с аоп, в других оно хуй знает где. Пока прочитал 5 глав спринг в действии 5, ощущения что вообще нихуя не знаю и не понимаю сути пока что.
2) почему jdbc, а не jpa? Понимаю, вопрос совсем тупой, но хочется адекватный ответ себе в голову вдолбить.
3) как вот это "все" делается красивым ? Не в хтмл файлах же это прописывать только. Всякие охуенные анимации переходы мигалки и ТД, с помощью чего это делается ?
А сколько стоит использовать обычный jdk?
+1 к вопросу про спринг, только интересен уровень джуна/недомиддла. Всю книжку зубрить или достаточно части будет? Так-то я джаву знаю умеренно неплохо, но в спринге полный ноль, хочу перед следующей работой добавить пунктик в резюме.
Продолжаю своё шествие к выполненному курсачу.
На данный момент столкнулся с проблемой показа различного контента юзерам, в зависимости от роли. Использую Freemarker, хочу сделать так, чтобы макрос поключался только если пользователь имеет роль ADMIN (В самом макросе по сути форма добавления записи в таблицу). То есть обычный юзер видит просто записи из таблицы, а админ в обавок к этому еще и видит форму для добавления.
Чтобы проверять авторизацию пытаюсь использовать это
<@security.authorize access="hasRole('ADMIN')">
/тут добаление макроса/
</@security.authorize>
и taglibs
<#assign security = JspTaglibs["http://www.springframework.org/security/tags"]>
Нужные зависимости подключил, не нихрена не работает, макрос не показывается ни юзеру, ни админу. Консоль чиста, ошибок нет.
С чем это может быть связано?
Много инфы читал про тёрки Freemarker и Jpa, типо проблемы с использованием их вместе. Не пытаюсь ли я заниматься некрофилией, проверяя роль именно так? Может сейчас как-то по другому можно?
1)В МВП трэдике тестовые из Новосибирских контор глянь по яве.
Там тестовое на стажировку.
Запиливай фейк резюме с ерохой и профильным вузиком и смотри какие тестовые дают у тебя в мухосрани!
В реале тебя будут дрочить на знание ява кор а не спринга!
2) jdbc это основы и в реале это просто ты же не с одним крудом будешь вкатываться?
Запили 2 - 3 круда на jdbc и уже по памяти будешь знать как и что там делать
3) вкатывайся в html, css и javascript на уровне запилить не уродскую форму и валидацию данных сделать.
Для красоты boostrap.
Вот как до бустрапа дойдёшь уже должен тестовые задания делать и вкатываться.
Название роли начинается с ROLE_? (То есть, ROLE_ADMIN, ROLE_USER и тд) Если нет, то либо переименуй, либо используй метод hasAuthority.
Спасибо hasAuthority, есть еще пара теоретических вопросов:
1. Какой вариант лучше? Есть ли у hasAuthority какие-то подводные камни?
2. Используются ли сейчас шаблонизаторы в норм компаниях или там все на js? Если да, то какие? Может стоит дропнуть Freemarker и сесть на Thymeleaf?
Разница между authority и role — семантическая. Authority — это какое-то действие, например, CREATE_BLOG_POST_AUTHORITY, BLOCK_USER_AUTHORITY, FUCK_YOUR_MOM_AUTHORITY и тд. А role, ну, это роль, ROLE_ADMIN, ROLE_USER и тд.
С точки зрения Спринга разницы нет, там даже 1 интерфейс используется — GrantedAuthority, единственное различие — название роли должно начинаться с role_, чтобы метод hasRole срабатывал.
Шаблонизаторы сейчас не используют, для делают SPA, которое взаимодействует с бэкэндом через REST API.
у себя за щекой
Готовлюсь к перекату и начинаю готовиться. Подскажите, собес на позицию мидла, что спрашивают по java core: collections, io, многоточность, что еще нужно знать?
Типы данных, модель памяти, garbage collection, классы Object и String, (не)свежий сахар из Java 8, исключения.
Некоторые вещи из этого списка могут показаться тебе тривиальными, но на миддла можно ожидать более глубоких вопросов по ним (как и по вме тем, которые ты перечислил)
Код, который берет данные из базы (или еще откуда) и передает во вью, очевидно должен быть в сервисном слое.
Код самого вью - либо движок шаблонов (freemarker, thymeleaf), либо SPA на жавасерипте (react, vue)
Может есть готовый сервис который это делает, например чтобы в слак отсылались месседжи?
Сделай грамотно легирование и собирай логи в спланке или в элк стэке и там рисуй графики, алёрты и тд
Дело происходит на свинге.
У меня пока так: форма хранит объект-помощник, при нажатии кнопок или раскрытии дерева вызывает методы extract, put, explore объекта.
Сам объект-помощник хранит указатель на дерево и архив, сам открывает окна выбора и тд, и обращается к архиву и вытаскивает нужную инфу, типа имени и содержимого, если надо создает и записывает файлы или добавляет ноды на дерево.
Ой бля сори, думал я в треде мобилок.
Спасибо, анон.
Попроси его сделать push версии с новым модулем, сделай pull ещё раз, сделай checkout.
Как ты блять на работу попал если не можешь в гит?
Я сделал этот squash и теперь у меня dev на 50 комитов впереди мастера. Мне ничего не оставалось как из мастера замерджить dev, чтобы они уравнялись. В итоге произошло 50 комитов в мастер. Где я обосрался?
>Говорят, что лучше всего комитить с -squash, чтобы сразу одним комитом переходить с 1.0 на 1.1 например.
>Говорят, что лучше всего мерджить с -squash, чтобы сразу одним комитом переходить с 1.0 на 1.1 например.
фикс
Готовь SOAP, REST, HTTP протокол.
>Однако чистый бэк/фронт нынче редкость, так что фронт тоже подтяни. Я бы посоветовал Ангуляр либо Реакт.
Не посоветуешь ли курса хорошего или книжки?
Основы html/css знаю, на js могу писать примитивные вещи типа смены свойств объекта в dom'e или отправлять xhr запросы, всё что дальше - тёмный лес.
Помогите нубу, изучаю потихоньку джаву и написал несколько DAO в Spring проекте с использованием hibernate. Как тестировать веб приложения то, в сторону каких технологий, фреймворков смотреть? В гугле слишком много всего и глаза разбегаются, + для понимания многих вещей уже бэкграунд в плане знания основ тестирования требуется.
И допустим, есть список [1, 2, 3]
Если сделать из него Observable, который в итоге будет излучать вообще другие значения на основе этого списка - можно ли как-то в onNext и в OnEror (особенно здесь) получать оригинальные значения вместе с модифицированным значением?
Ну если ты будешь передавать класс/тюпл вида: {original: 1, mapped: 10} топ очему бы и нет, но вообще в onError ты нихуя не получишь элемент порождающий, только Exception (не или Throwable, не помню) и вообще он не для этого.
Как вариант сделать такую говняху:
class Container<T, R, E: Throwable> {
final T original;
final R result;
final E error;
}
Или если взять что-то готовое то:
class Container<T, R> {
final T original;
final Try<R> try;
}
Правда будет хитрое превращение (давно не писал на джаве, поэтому синтаксис не гарантирую) что-то типа:
1) Func<Original, Observable<R>> transform;
originalObs.flatMap(T original -> {
__return transform.apply(original)
____.map(R result -> new Container(original, Try.success(result)))
____.onErrorReturn(error -> new Container(original, Try.failure(error)));
})
Слово Слово 15,365263
Слово Слово Слово 3599,64
Слово Слово 697,6843
Причём берётся положение самой дальней изначальной точки
Собственно это я и не могу сделать
Я думал выставлять их по индексу, но не знаю как перенести вместе с этим ещё и всё число
Двачую, адекватный подход.
Сделай для начала голом ЖДБС + сервлеты
Потом на спринге через JdbcTempalte
Потом хибер с его ёбью и SessionFactory
и в конце когда попробуешь Spring Data Jpa у тебя шишка задымится
Ну и зачем ему юзать голый JDBC? Ведь создателям этого неюзабельного высера приготовлен отдельный котёл в аду.
Я также делал, только еще spring mvc захуячил после сервлетов, и в конце всё это дело на спринг бут перевёл.
Окес, гляну что за мохито такой.
>>67136
Не, с этими фреймворками проблем нет, про jdbc стандартный javeEE я тоже немного почитал и поковырял их, углубляться вряд ли стану. Проблема именно в том, что я вообще не в курсе как тестировать/отлаживать отдельные классы и приложение в целом, вот например мне нужно проверить dao или работу сервлета (сервер на tomcat).
Пробовать писать формочки на jsp под все довольно муторно, да и вряд ли ведь так делают? Пока ограничился тем, что тестирую просто в основном контроллере, который ловит реквест на дефолтный путь "/", но в нем код несколько раз почему-то исполняется. Короче, вместо тысячи слов https://github.com/q1w2e3x/TestProject/tree/nextToMerge.
чтобы потом на фоне бойлерплейт говна голого jdbc остальное казалось сказкой
Всё, сделал, нужно больше спать, а то голова совсем не варит
Если я правильно тебя понял, то там приблизительно следующий флоу:
-говнокодишь какую-то фичу. У тебя вышло 50 коммитов.
-В этой же ветке делаешь git rebase -i HEAD~<количество коммитов> которые хочешь скампоновать в один коммит. В твоем случае 50. Потом делаешь pull request на мердж в мастер. Кто-тов твоем случае никто делает код ревью и ты спокойно мержишь в мастер. Я думаю что раз это проект для резюме, то лучше делать эти пулл реквесты и в саммари описать что было сделано в этой ветке.
Но поясни, пожалуйста, про 50 коммитов впереди мастера? Ты делал эту фичу в feature-ветке или в develop?
У моего пет проекта (SAAS)
7 серверов ec2-small
один ec2-medium
Elasticache (redis) ec2-small,
RDS (ec2-small)
У кого есть опыт, сколько примерно будет стоить тоже самое в google cloud или digital ocean?
Сейчас 150-200 евро в месяц
Я делал 50 комитов в feature/springmvc, потом делал что-то вроде этого (через Идею):
git checkout dev, merge feature/springmvc, мне предложили удалить feature/springmvc, я согласился и потом понял что какая-то хуйня вышла. Смысл был тогда в ветке feature?
Потом я уже начал разбираться, нагуглил про -squash, сделал:
checkout master, merge --squash dev и получилась хуйня с dev на 50 коммитов впереди мастера.
Вобщем я думаю удалить нахуй ветку мастер, прочитать как всё правильно сделать и потом из dev (где уже сотни комитов) накидать в мастер эти ваши пул-реквесты, релизы и т.д.
Для галочки. Недавно пригласили на вакансию, в которой на хх высшее образование было обязательным пунктом.
Ты как-то дохуя сложно делаешь
git checkout branchName
git reset --soft SHA коммита, от которого твоя ветка началась
git commit -m'squashed'
git push origin branchName --force
> Смысл был тогда в ветке feature?
Это нужно для разработки в несколько тел. В процессе разработки у тебя может получится код который в данный момент не компилируется (ты еще не реализовал весь нужный функционал, или внес очень большие изменения в старый код) и если ты будешь коммитить в девелоп, то когда твоему коллеге будет нужно делать что-то свое, у него могут возникнуть проблемы потому что в девелопе распидорашеный некомпилирующийся код. А так ты долбишся в своей ветке, колега берет нормальный код из девелопа и начинает ветку для другой фичи. Когда работа над фичей закончена и залита в девелоп, то ветка больше не нужна. Когда ты работаешь один то фич-ветки в общем-то не нужны, так как в основном работа над фичами ведется последовательно. Если не работаешь сразу над двумя фичами одновременно то можешь коммитить сразу в девелоп, а на собеседовании говори что локально работал в отдельных ветках, а перед пушем на гитхаб ребейзил коммиты в девелоп - так ты себя сразу заявишь про гит чуваком. Естественно желательно попробывать такое сделать, что бы не завалиться если вдруг начнут спрашивать детали.
Ваше мнение учтено, пройдите к выходу, пожалуйста.
Думаю о покупке Mac mini на i3
Как думаете нормально на таком будет в Идее сидеть, да сериальчики смотреть?
Или на i5 разоряться?
Эплотредов не осталось почти, а в hw вряд ли кто-то сможет нормально ответить, т.к. в основном геймеры сидят.
Как правильно создать конкретную базу данных ?
1) прописать депенденс того, что мне надо ?
2) в ресурсах создать SQL файл или data source через райтклик и new ? Или идти в view - tool windows - database?
Почему у меня что-то ещё докачивается, если я иду по пути тул виндовс - датабес? Разве после подписывания в депендах оно не должно скачаться? И почему трай коннкктион всегда фейлит?
3) автор говорит дописать в апликатах юрл, имя пароль и гgenerate-ddl=true, нахуя, если я это в прошлом понкте сделал?
Запутался что-то пиздец с этим
8гб оперативы у тебя выжрет браузер и система. Ищи минимум 16 или инструкцию по апгрейду рам.
В идее делаю, забыл сказать
Откуда ты достал 3:10:00?
Если это какое-то строчное представление, то конечно оно берет текущую таймзону. Сам Date не хранит инфы о таймзоне.
Мне не хватает 8 GB, imac 2018 года.
Докер+Хром+Атом+Идея сжирают все начисто.
Да че там, один только докер уже 4 гига съедает.
Вас понял, ну значит придется системник собирать. Ноут использовать как домашний ПК чет неохота.
Но память дешевая вообще, я в старый аймак 2011 года ставил 32 гига с ибея заказал че-то за 200 долларов, и он летал. Вот в новом всего 8, пока руки не дошли добавить. И установить очень просто, скорее всего в мак мини тоже не должно быть проблем.
В мак мини надо разбирать его весь походу, там нетривиально.
StackOverflow советует сделать так:
jdbc:mysql://localhost/db?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
Но это попахивает говном, ибо serverTimezone=UTC вряд ли подходит для Русского народа. А может и нет.
Анончик, подскажи пожалуйста как правильно и канонично исправить данную ошибку?
В мак мини память можно сменить просто скрутив донце, для замены жесткого диска нужно его разбирать с использованием особых отверток.
>>67841
>>68730
Спасибо за инфу
Такой еще вопрос, про тестовое задание. Меня отправят с этим заданием домой или меня прям там посадят за комп и начнут смотреть из-за спины, как я раздупляюсь и торможу? Какая вообще норма? Может какойнить анон часто ходит по инетрвью или сам собеседует. Будет круто, если примерно опишете, в чем задание состояло.
Нет никакой нормы, если у тимлида есть время разбираться в говнокоде мамкиных вкатывальщиков - есть тестовые задания, нет - так нет, значит будут разговоры за жизнь и куча хитровыебанных вопросов из OCA/OCP. Я был на 7-8 собесах в ДС, все тестовые выдавали "на дом", 2-3 дня на выполнение, как пример: реализовать CRUD на Спринге, только не использовать БД, все хранить в xml файлах. Ну а если бы мне предложили делать у них, я бы нахуй скипнул, т.к. волнение, незнакомые место и люди - мозги толком работать не будут
Запили фейк резюме и проси тестовые.
Или смотри в МВП треде тестовые что анон из Котосибирска выкладывал
>serverTimezone=UTC вряд ли подходит для Русского народа
А не похуй ли? Перед выдачей на фронт отформатируешь у нужной таймзоне.
Отправят домой с заданием. Заданием вероятно будет круд на спринге + ангулар/реакт на фронте, могут попросить прикрутить конкретную бд.
Могут что-нибудь интересное предложить вроде веб-сокетов. В любом случае, рассчитывай, что будет 1-2 небольшие технологии, которые ты не знаешь и, которые нужно будет изучить.
Кому всрался твой возраст если ты найдешь работу на удаленке, и твоё жирное ебало никто палить не будет.
Большая часть людей работает в бодишопах для клиентов.
Бодишоп забирает себе большой процент.
Если быть самым умным, то можно свалить с бодишопа, и продолжать работать на клиента за больше лаве.
А что касается работы на себя, то напиши сайт знакомств для геев, переводчик собачего языка. Очевидно, что все идеи уже написаны.
это на миддла?
Олсо посоветуй короткий курс или книжку по
> ангулар/реакт на фронте
Вот допустим у меня есть статика и несколько api которые кладут/возвращают с бэкенда данные. Как это быстро и красиво обложить фронтом?
https://github.com/Anc3vt/ini
Не знаю, зачем, но решил сегодня сделать это.
Соглашусь про волнение. Зафакапил элементарнейшие задачки на алгоритмы из-за волнения. Дома решил влёт.
Молодец, что выложил, но ридми у тебя полный мгимо финишд
Имеет ли смысл на linux (ubuntu, mint) переходить?
Или минусов будет больше по сравнению с виндой?
Если бы можно было какой-то нормальный вариант для домашней машины за приемлемую цену приобрести, то о Linux даже мыслей бы не было.
Ноут для дома как-то нет желания использования, а с iMac и Mac mini, там что-то все очень печально в плане цена/производительность.
Нет, на джуна. Сегодня джава джун это хайбернейт, спринг и "ну да, реакт, да, там компоненты, писал, использовал, рест, да".
Я чего-то не понимаю?
Да все именно так. Плюс немного теории: аоп, ди, виды внедрения бинов, жизненный цикл бинов, основные аннотации, можно ли заменить аннотацию "контроллер" аннотацией "компонент", как написать свой бин, будет ли он потокобезопасным, какие вью резолверы использовал, мвс паттерн и тд.
Ну к примеру самый дешевый mac mini 55к
i3 4 ядра, 8 гигов оперативы, 128 ssd
+ маковксие тачпад/мышь и клава +15-20к
Такое себе
ну вот и пиши знание спринг.
Ещё можешь посмотреть лекции Борисова про спринг потрошитель, там со смехуёчками, но толково описано, я после просмотра стал сильно лучше понимать как контекст бины штампует и обрабатывает.
Спасибо.
Да дело даже не столько в таймзоне, сколько в самом решении проблемы. Неужели никто не нашел лушего решения для такой частой проблемы, чем просто нахуярить параметров после url ?
Ну можешь при работе с базой сразу после подключения задавать всю эту хуйню на сессию.
SET GLOBAL time_zone = 'Europe/Moscow';
Решает проблему гораздо более красиво. 1 раз запустил и все. В MySQL просто изначально тайм зона хрен знает как задана
Есть сам Qt, вернее огрызок: https://ru.wikipedia.org/wiki/Qt_Jambi
А в качестве заменителя спокойно юзай JavaFx. Внезапно, он жив. Правда, хуй пойми кто сейчас им занимается, или Oracle или Gluon. https://openjfx.io/
Тебя не про книжку спрашивали.
1. Правильно ли в этом месте запихивать в один контекст все бины из всех пакетов, чтобы в других пакетах читать, например, глобальные настройки? Т.е. делать
> new AnnotationConfigApplicationContext("core","tracker", ...);
2. Если в другом классе мне нужен контекст, правильно ли делать MyClass implements ApplicationContextAware (реализуя метод setApplicationContext) + @Autowired ApplicationContext applicationContext ? Или как? Если не делаю этого, то получаю неинжекнутые свойства и NPE.
Spring in Action пока не осилил, пытаюсь в изучение через запиливание всякой одностраничной ерунды.
>Если в другом классе мне нужен контекст, правильно ли делать MyClass implements ApplicationContextAware
Ты должен объявить класс бином, добавив его в контекст, и в зависимости от способа конфигурации объявить зависимости этого бина от других - тех, которые будут внедрены в него при создании.
Я либо твоего вопроса не понял, либо ты делаешь что-то не так.
Вот из книжки тебе с первых страниц вырезка. Книжка называется "Spring 5 для профессионалов". Есть на русском языке.
Сколько времени ушло на подготовку? Как много моков ты решал? И вообще по какому принципу готовился? Совмещал моки и книжки?
Открываешь вебсайт одинэсочки, читаешь описание 1c:ERP2 и пытаешься запилить игрушечный аналог.
А если серьезно, то наибольшую анальную боль тебе доставит процессинг данных вида "собрать вот те, те и те хуитки из 10 разных таблиц, проанализировать суммы, меньше ляма, тогда наделать из них по хитровыебанному алгоритму хуитки А, больше ляма - наделать хуитки Б, всё это em.persist и в оконцове про всё это заебенить отчет", 99% которым тебе и придется заниматься.
Так что готовься заранее разрабатывать анус паттернами, наследованием и Stream API - без последнего твой пердак может и не сдюжить.
А ну и да, аналитические SQL приблуды вроде AVG, PARTITION BY, HAVING, RANK и прочие в постгре/оракле изучай.
>А ну и да, аналитические SQL приблуды вроде AVG, PARTITION BY, HAVING, RANK и прочие в постгре/оракле изучай.
Был у нас такой - у него в коде постоянно фракталы на тысячи строк @NamedNativeQuery и так стопицот классов. Однажды базу решили сменить - тут то у чувака пердак и рванул (был как раз оракл, и, соответственно, неперносимая ебанина с outer join с помощью (+)).
Выбора на самом деле у тебя два - или спринг дроченый, или легаси на J2EE точеное. Примерно одна и та же хуерга по концепции, на самом деле, только J2EE уже сдохло и воняет.
Я Спрингом активно занимаюсь, а про J2EE читаю когда уже сильно утомился - чтобы систематизировать, понять, что было заменено фреймворком. Просто хочется понять какую практику лучше уже иметь при трудоустройстве. Ну,например, судя по написанному выше - лучше набить руку на базами данных.
Готовился около месяца, но это потому что я ленивое чмо, реально там гораздо меньше времени нужно.
1. OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide (Boyarsky, Selikoff) - как основа, все подробно расписано, есть небольшие неточности, но для самого экзамена это не критично
2. OCA Java SE 8 Programmer I Exam Guide (Sierra, Bates) - читал эту, если не понимал о чем в 1й говорится
3. Моки enthuware - лучшее вложение 10$ в моей жизни
Готовился так: читал главу книги, решал примеры в конце, решал мок по этой главе, если сдал - ок, нет - разбирал ошибки и шел дальше, и так до конца книги. Далее уже запускал полноценную эмуляцию экзамена, смотрел где ошибки были, перечитывал соответствующие главы. Делал так, пока стабильно не стал сдавать в эмуляторе. Ну и за день до экзамена в моках сдал last day test для уверенности.
Помоги анон, как двигаться дальше?
>Пытался прочитать Spring in Action
Что там непонятного может быть, на что нельзя ответить при помощи поисковых систем?
И второй вопрос. Если подготовиться и сдать их ты реально будешь знать язык, или это просто тест ради теста?
Спасибо.
Вопросы будут задавать.
Значит записывай ответы:
1) сам на пики сяду, мать на колени покажу
2) о полотенце ноги вытереть
3) что-то я здесь одноглазых не вижу
Это бесплатные курсы. 4 месяца учишься и потом по результатам берут к себе.
> 3. Моки enthuware - лучшее вложение 10$ в моей жизни
Они разделяются по версии джавы?
Я покупал когда-то для 6 джавы, еще доллар по 30 был. Для 8 нужно будет отдельно платить?
Жабадаун растет.
>>70452
По моему опыту, да, в нормальных компаниях смотрят. С точки зрения работодателя, если ты потратил время и деньги на сертификацию, то, во-первых, это показывает серьезность твоих намерений в java-разработке, во-вторых, для тебя не будет проблемой изучить новый фреймворк, технологию или язык. Это не значит, что без сертов тебя не возьмут на работу, но на собесах на тебя будут смотреть уже не как на джуна-вкатывальщика, даже могут не спрашивать по java core (главное, не забудь упомянуть что у тебя серты есть). Так же, как мне говорили, зарубежные работодатели очень ценят наличие сертов.
Насчет "знать язык", я думаю, что язык - это инструмент. Уровень владения этим инструментом - один из критериев определения тебя как специалиста. Повысится ли уровень при подготовке к сертификации - безусловно да. Будешь ли ты реально применять полученные знания - тут хз, все зависит от твоего рода деятельности. Если ты гребешь по волнам ентерпрайза, обмазавшись Спрингом и Гибернейтом, то вряд ли ты будешь спускаться на дно plain java, чтобы применять все тонкости языка, которые ты узнал при подготовке, на практике.
>>70451
Да, разделяются по версиям и уровням, насколько знаю, там нет скидок если у тебя предыдущая версия куплена. Я OCA и OCP отдельно покупал.
https://pastebin.com/0Y8PJ2dF
Интересует в частности, какие ассерты писать.
Допустим, в первом тесте я проверю с помощью ArgumentCaptor<Foo>, что создан foo с переданными полями + создан fooChild с необходимыми полями и что возвращенный Dto совпадает с ожидаемым. Каждое поле сравнивается с ожидаемым отдельным ассертом.
Во втором тесте проверяется исключение, когда existsByEmail() вернет true.
Буду благодарен, если подскажите правильный ход действий.
Как долго ждать ответа от "ментора"?
Я заебался ждать и пошел решать дальше, нарешал уже шт 20 подряд, а если ждать, то выше после 2ой задачки лочит.
И его называют великим. Вы ебанутые?
Имеется в виду @Entity класс и интерфейс-репозиторий насколько я понял. Как он тебе их сгенерирует?
А я что делать буду тогда?
у всех страницы с инфой об экзаменах пустые, или я что-то делаю не так??
https://education.oracle.com/java-se-8-programmer-i/pexam_1Z0-808
https://education.oracle.com/java-se-11-programmer-i/pexam_1Z0-815
перехожу с этой страницы
https://education.oracle.com/java/java-se/product_267?certPage=true
на сайте залогинен
Пока решил делать так: создаю очередь user_messages, в каждом сообщении будет поле receiverUsername, посылаю сообщение в очередь, потом где-то в другом месте ловлю его с помощью @RabbitListener и посылаю его с помощью convertAndSendToUser нужному пользователю. Это норм подход?
IDEA как-то ставил, тормозила и падала без причины, хз почему.
Ставь сразу IDEA. На прошлой работе все сидели в ней, и только один чел пользовался Eclipse. Он этим всех заебал.
На текущей работе все пользуются IDEA. Фактически, это стандартная IDE для джавы.
IDEA проще и удобнее, сиди в ней.
Придёт время работать за деньги, поставишь себе эклипс древний с 6-ой йявой и дырявыми плагинами по теме, вот тогда будешь охуевать от "перспектив" и "воркспейсов"
Устанавливай Enterprise и раз в месяц переустанавливай.
После этого получить саму вакансию в другом контроллере и обработать её. Сейчас обрабатывается все через задницу (пик 2 и 3) я запрятал в файл с html форму, в которой есть hidden input, в который автоматом вставляется id вакансии, по клику на кнопку я передаю этот id в post mapping на пике 2, где по этому id ищу вакансию в базе данных и уже её использую для создания application.
Вопрос: Как в post mapping передавать не ID, а сам объект вакансии на котором была нажата кнопка?
Сможешь конечно к бд подключится, это же не в идее делается.
Алсо, если порекомендуете какие-нибудь западные каналы, то буду только рад
Какой сайт можно запилить ? Чтоб было типо полезным и не заезженным. Учу спринг пару месяцев только.
Вуз не самый хороший, сильно многого не будет требовать.
Только не надо говорить зачем сайт, сделай что-то, что интересно тебе и ТД и ТП. Я мертв внутри(окда?) Да и знаний и желания особого нет.
И сколько будет стоить такой средний сайт на фрилансе заказать сделать ? В какую сумму можно уложиться? (Вдруг у меня не выйдет совсем)
Надеюсь на мудрые советы
Можешь уточнить этот момент? Я понимаю, что фриланс с клепанием сайтов больше по части пхп. Но если я учу джаву, и хочу по своим причинам это заказать на ней. Это же будет дороже, или таким почти никто не занимается на фрилансе с джавой и простыми гавносайтами?
Хранить ссылку на объект в самой вакансии?
До 22:00 учусь, после - играю.
Ты случайно не спутал Java с JavaScript? Если второе тогда безнадежно устарело.
Если же это и вправду джава тогда нет.
Нет, не спутал. Благодарю
Есть сайт х. На нем публикуются заголовки статей и небольшое описание под заголовками, когда кликаешь на заголовок - тебя перебрасывает на оригинал сайты где была эта статья posted. Я хочу создать клон сайта х, чтоб он делал тоже самое что и сайт х в режиме онлайн. То есть чтоб он все брал с сайта х.
1) в сторону чего мне смотреть и разбираться?
2) как сделать так, чтоб это работало в режиме онлайн в реальном времени ? У меня платная идея, я просто могу запускать это приложение и с локального хоста видеть все это ? Или как ?
3) насколько это сложно? Учу спринг месяц, пишу небольшие круды только
Я везде видел что-то про парсер, хотелось бы понять оно это? И хватит ли мне для этого технологий спринга и жабы обычной
Я с похожими целями использовал HtmlUnit, но вроде как ещё можно использовать jsoup.
При помощи htmlunit я выискивал необходимые мне кнопки на странице и автоматизировал по ним переход в соответствии с выбранной логикой. Знаний больших для этого не требуется - я всего месяц Джаву изучал прежде чем попробовал создать такого бота.
Есть три энтити:
class A {
@OneToMany Set<B> bCollection;
}
class B {
@ManyToOne C c;
}
class C {
что угодно
}
Суть состоит в том, чтобы удалить какой-то определённый C cInstance, заодно удалив соответствующие B (с некоторой дополнительной логикой).
Что делаю:
1) для всех A aInstance нахожу B bInstance, ссылающийся на cInstance, потом aInstance.bCollection.remove(bInstance), дополнительная логика, aRepository.save(aInstance)
2) cRepository.delete(cInstance)
Оно работает до тех пор, пока на методе нет @Transactional. В этом случае транзакция падает с ConstraintViolationException с криками, что нарушен внешний ключ, ссылающийся на C.
Естественно, весь этот процесс ДОЛЖЕН выполняться в транзакции. Кто виноват и что делать? Не хватает какой-то хитровыебанной аннотации?
БД - MariaDB 10.3.
Посмотрю, спасибо
А ты про bInstance не забыл? Его тоже надо удалить из БД, ведь у него ссылка на удаляемый тобой cInstance.
То, что ты сделал aInstance.bCollection.remove(bInstance) - тут только ссылка из aInstance.bCollection удаляется, но сам bInstance живёт и зависит от cInstance.
Так вот юмор как раз в том, что без транзакции bInstance удаляется из БД сразу после сохранения aInstance.
К можно ли было сделать Б зависящим от С, С привинтить cascadetype.all и избавляясь от С лишаться и записи о б? Или тогда коллекция будет выбрасывать нуль поинтер? Но это можно в методе отрегулировать дополнительно.
мимо-учу-спринг
Возможно тебе нужно запилить orphanRemoval у коллекции в A, и тогда при удалении из коллекции у тебя будут грохаться и B и C.
Я сам не особо спец в JPA
Это не я. "С" грохать не надо при удалении из коллекции, это отдельные сущности, к которым A привязаны через B (так надо).
В общем, видимо, придётся переструктурировать логику и вводить отдельный репозиторий для B.
Начал читать Хорстмана "Core java" и в начале столкнулся с проблемой.
Почему-то выдается ошибка пикрил 1 когда я пытаюсь запустить джава фаил из книги. В параметрах среды поставил все как по гайдам (пик 2, 3).
Пол дня гуглил и ничего из предложенного не работает.
На самом деле, возможно я не до конца понял как пользоваться опцией -classpath.
Буду благодарен, если поможете.
Например написать top down RPG 2d в японском стиле на Ведро.
Играю редко. Последняя игоря была в том году - "Сома". Может быть поиграю в "Киберпанк".
>Бесплатная версия Идеи
Тебе за глаза хватит для начала, привыкай использовать фришный софт, тыж пограммист, ищи бесплатные алтернативы, расширяй кругозор.
>отсутствие Database Tools
Плагины есть
Их же вроде все поломали, не? Сейчас джаваагент модно использовать.
Буду очень благодарен.
>гайдов по созданию
Нахуя?
Придумай сам и запили первую версию, потом подумаешь переделаешь и так пока не заебёт!
Тыж программиста!
Java 8, Spring, Docker, 2+ года коммерческой разработки на джаве
Я быдлокодер. Меня дедлайн по курсачу душит, пиздить готовое не хочу, а "по гайду" я бы переписал под свой стиль да, забив на code conventions, поменяв функционал местами, ну и так в голове бы хоть что-нибудь осталось.
За 150К можешь разве что джуна зелёного нанять)) Меньше чем за 350К не заинтересуюсь даже :)
САП. Что полезного можно написать на Spring, чтобы попутно ему обучаться?
О, я бы тоже что-нибудь такое хотел бы сделать
RESTFUL WEB SERVICE напищи
Java 7, liferay нннада?
чат на Джава Кор - это сокеты, у Оракла в туториалах есть пример. Нахуй ты Спринг сюда лепишь?
Бамп вопросу, подскажите плиз((
Хотел практиковаться. Сразу на нескольких стульях усидеть не удалось.
За наводку на туториал - спасибо, я посмотрю. Почему-то не додумался поискать реализацию на Джава Кор - решил, что сам смогу разобраться.
>1372190300
Жиза, чувак
Аноны, вопрос по спрингу, конкретнее по сокетам, есть стильномодномолодежный мануал с использованием SockJS и STOMP, но он мне нахуй не нужон. Делаю по дедовски, наследуюсь от TextWebSocketHandler, ловлю сессии, помещаю в CopyOnWriteArrayList и в нужный мне момент посылаю message по всем соединениям.
Собственно в чем проблема: В WebSocketConfig, а точнее в методе registerWebSocketHandlers я нагло хардкожу мой вышеуказанынй handler к урлу. Теперь на базе этого говна мне необходимо переделать урл на динамический, а-ля комнаты, не меняя handler чтобы клиенты могли подключаться по ....../ws/{roomId}, шо тут собственно делать я хуй пойми
Ну или книжку может какую почитать? Java EE7 essentials? Spring Pro/Spring in action?
+---------+-----------+-----------+------------+--------------+--------------+
| city_id | city_name | city_code | country_id | country_name | country_code |
+---------+-----------+-----------+------------+--------------+--------------+
| 1 | Москва | MOS | 1 | Россия | RUS |
| 2 | Нью-Йорк | NY | 3 | США | USA |
| 3 | Киев | KI | 2 | Украина | UKR |
| 6 | Вашингтон | WS | 3 | США | USA |
| 7 | Самара | SM | 1 | Россия | RUS |
+---------+-----------+-----------+------------+--------------+--------------+
Вызовом метода ResultSetTextRender.println(rs);
import java.util.*;
public class Main {
static Scanner reader= new Scanner(System.in);
public static void main(String args[]) {
Scanner sc = new Scanner(System.in); //sozdaem object scanner
int i = 0;
int sum = 0;
float srznach = 0;
int a = 0;
System.out.print("vvedite chislo: ");
while(true) {
if(sc.hasNextInt()) { // proverka na int vvod
a = sc.nextInt(); // havaem chislo
if(a != 0) {
sum = sum + a;
i++;
}
else {
break;
}
} else {
break;//exit
}
}
srznach = sum / i;
System.out.printf("%.10f", srznach);
}
}
inb4: думал на выводе форматируется, поменял просто print на printf, непамагло((((
import java.util.*;
public class Main {
static Scanner reader= new Scanner(System.in);
public static void main(String args[]) {
Scanner sc = new Scanner(System.in); //sozdaem object scanner
int i = 0;
int sum = 0;
float srznach = 0;
int a = 0;
System.out.print("vvedite chislo: ");
while(true) {
if(sc.hasNextInt()) { // proverka na int vvod
a = sc.nextInt(); // havaem chislo
if(a != 0) {
sum = sum + a;
i++;
}
else {
break;
}
} else {
break;//exit
}
}
srznach = sum / i;
System.out.printf("%.10f", srznach);
}
}
inb4: думал на выводе форматируется, поменял просто print на printf, непамагло((((
HashMap<Integer, Integer> map = new HashMap<>();
map.put(34,5);
map.put(98,8);
System.out.println(map.get(34) + " " + map.get(98));
У тебя интовая переменная делится на интовую - юзается целочисленное деление.
Можно как пикрелейтед привести деление к дробному - тогда и результат получится без отбрасывания дробных частей.
Да я не об этом, там же разные числа 34 и 98 причем тут вообще пул. Там суть в том что когда нода выбирается куда записывается значение вызывается tab[(n - 1) & hash] в первом случае имеем 0010 0010 а во втором 0110 0010 и в первом и втором случае получаем ноду 2, после чего получаем коллизию и как следствие время доступа O(n). У меня вопрос почему именно так реализовали? Это же не оптимально нихрена
Спасибо теперь я понял что так и было задумано изначально
При условии, что берут в обе конторы.
Что за хуйню ты меряешь блять?
Скорее всего при первой загрузке Random куча зависимостей говна грузится.
Есть два класса.
FindTicket и ServiceAction, первый наследник второго.
Оба проаннотированы как @Service и в контекст успешно доезжают: проверил, что находятся внутри context.beanDefinitionNames()
У FindTicket также есть поле srvProperties c аннотацией @Autowired и конструктор public ServiceAction(), где происходит всякая инициализация, для которой нужны srvProperties. У наследника специфического конструктора нет.
Так вот эти проперти инжектиться не хотят, хотя объект дочернего класса получаю правильным способом, не через new: applicationContext.getBean(FindTicket.class)
Во всех остальных частях приложения с такими же вводными работает нормально. Это из-за наследования или я уже в ночи очевидные грабли не вижу?
Логично же. Initial capacity у hashMap равно 16. Это значит, что номер бакета - это (hash) mod 16.
Поскольку hash переменной типа Integer - это собственно её интовое значение value, то номер бакета - это просто value mod 16.
34 mod 16 ≡ 2
98 mod 16 ≡ 2
Таким образом, оба ключа попадают в один и тот же бакет, no magic
кинь код
https://codingbat.com/java
Это у меня какие-то проблемы или этот сайт похож на сделанный за один вечер?
И да, есть ли годные книги по теме написания игр на Джаве? Да, я понимаю, что это глупое начало, но хочется попробовать именно в этом попрактиковаться.
Бамп вопросу.
Анон, это какой-то пиздос!
Я повторял за видосами 1 в 1
https://youtu.be/TJvcYxfQ3J0
https://youtu.be/VnogOoOQZIE
Но у меня код запускается и нихуя, а в ролике все работает! Пошел, тупо скопировал все, что было в репозитории - нихуя.
Что я упускаю??
матрицы здесь лишнее, тут просто строки с наборами цифр, которые нужно определить по уникальности наборов.
Вечером подумаю что можно с этим сделать и что на самом деле кроется за этой задачей. Если ещё актуально
Вот в этом и дело: никаких нет ни эксепшенов, ничего!
Хотя, и пожалуй, забью на такой урок. За полчаса нихера нового не узнал.
Поищу другое пособие
> За полчаса нихера нового не узнал.
Дурак ты. Повторять код за кем-то как обезьянка - это не обучение. А вот понять, в чем ошибка и почему оно не работает, вдумчиво читать код, дебажить и научиться гуглить нормально - это и есть обучение.
Иду собеседоваться на джуна.
Что там спрашивают вообще?
Хм многопоточность при собесе на джуна.
Я надеюсь там эти самые деревья или квик сорт не предложат написать. Выдадут ручку и листочек. Вот тут я точно не осилю.
Ну ладно квик сорт осилю наверн. Хотя без иде все равно пизда.
Я прям представил как я ее достаю и такой без палива начинаю скатывать. Лол.
Ну вот и спросят про устройство, про сложность разных операции, про стоимость по памяти.
Мы спрашиваем по алгоритмам у структурам данных: ну типа как хэшмап работает, какие сортировки можешь назвать на бумажке квиксорт писать не попросим, но вот пузырек возможно, развернуть односвязный список. Какую структуру данных лучше использовать для такой-то задачи. Про алгоритмическую сложность стандартных структур можем спросить.
Общие вопросы по Яве: чем класс от интерфейса отличается, какие коллекции в Яве есть, если в резюме есть какие-то технологии: например Спринг, спросим по спрингу. По базам данных, типа как узнать средний бал студентов на каждом курсе.
Простенькие логические задачки.
>>74171
А в чем смысл держать две коллекции с разными реализациями?
Я вот тоже уже некоторый месяц изучаю java/spring, последнее время - преимущественно по видео. Вот я от ошибок не скрываюсь... на своё горе. То в зависимостях maven разбираться, то то ещё какая-то мелочь, которая отнимает дохера времени. Из-за того, что освободил от работы время и могу теперь учиться, хочу снова вернуться к книжкам, но уже на практике всё отрабатывать.
А вообще, пытался сам какие-то программы писать, но в голову не лезут задачи.
В целом да, но есть некоторые но.
Нежелательно использовать функционал который ты проверяешь. Т.е. в твоем случае если есть сервис который что-то генерирует на основе некого алгоритма, то по феншую будет передавать генератор в конструктор (например как Function или Supplier). И в тестах передавать моковый генератор. А потом еще отдельно написать тест на сам генератор.
А если у тебя утилитный класс с методами тип null safe collection size, то их конечно можно использовать.
Посмотреть как человек алгоритм в код переведет.
А то бывают такие, что бодро начинают рассказывать алгоритм, всякие тонкости. А как написать код, так сразу ступор.
Если доходит до очного то где-то 50-70% процентам делаем оффер. Но мы достаточно придирчиво изучаем резюме и в случае сомнений делаем телефонное интервью, и большинство отсеиваем на этом этапе.
Плюс есть программа для студентов, но там немного по другому и в целом её результат нас не очень устраивает
И вакансий джуниоров у нас не так много, в основном ищем сеньоров.
И такой момент: мы не столько знания человека пытаемся определить, сколько потенциал. У меня в команде был парень который пришел студентом без опыта, и за 1,5 года вырос до уверенного мида. правда это самый лучший результат на моей памяти
Если я напишу, что у меня отсутствует вообще какой-либо опыт работы не только в сфере ИТ, но и в общем, мне 25 лет и нет образования вообще, а из технологий будет указано java 8, jpa, spring, mysql, базовые структуры данных - каков шанс обратить на себя внимание?
Ну или так: шанс пробудить к резюме есть, или претендующие на джуниоров как правило приходят с лучшим послужным списком?
Сравнить таким образом, конечно, можно, но как учесть количество левых резюме?
Так-то ясно, что везде ещё и по разному смотрят - просто персональный опыт интересен.
Пиздец там кадры.
Прямо скажу небольшой. Т.е. если у человека есть опыт или профильное образование, мы понимаем что в первом случае у него есть какие-то практические знания, во втором теоретические.
А у тебя, самообразование? А есть какие-то практические достижения? Ну там свой проект или существенный вклад в сторонний проект на гитхабе (не тестовый хеловорд, а реальный проект которым пользуются другие). Или ещё что-то такое, что покажет что ты реально кодишь. Без этого, тебя скорее всего еще рекрутеры срубят.
кстати лайфхак: личное знакомство с рекрутерами это очень полезная вещь, тебя могут порекомендовать туда, куда чисто по резюме ты бы не прошел. рекомендую линкед ин, поискать там рекрутеров, подобавляться в контакты и написать, что ты без опыта, но очень целеустремленный ищешь работу
В принципе если ничего такого нет, то можно попробовать пойти на вакансию автоматизатора тестирования. Там требования ниже и есть возможность потом перейти в программисты. Только не забудь базовую теорию тестирования почитать.
у нас есть пара человек которые пишут тестовый фреймворк который паралельно запускает тесты на нескольких нодах, собирает данные со всех нод, деплоит, запускае и останавливает приложения, управляет моками, в общем технически очень навороченная система
Просто я бин делать не вижу смысла, т.к. у меня простейший вспомогательный класс, который оборачивает пару функций из jwt-библиотеки, и мне надо сгенерировать валидный и истекший токен, вот и все.
Спасибо за ответ!
Так и не делай, method refernce наше все. Максимум свой функциональный интерфейс сделать, если там параметров больше одного.
Спасибо.
test
Я понял про интерфейс, спасибо. Подскажи еще, раз уж ты здесь, если у меня в одном методе несколько операций, например: создать юзера, создать его корневую папку, замаппить юзера в дто и вернуть это дто, то на каждое действие надо писать отдельный тест или проверить сразу всё (юзер создан + папка создана + дто корректный)?
Обычно юнит тесты пишутся на публичный АПИ (package private и protected, тоже могут быть частью публичного АПИ если предполагается, что кто-то будет наследовать твой класс и дергать эти методы и на них есть четко описанный контракт).
Но опять же, если у тебя метод имеет достаточно сложную логику, то имеет смысл так же отдельно протестировать не публичные методы, просто потому что так их проще протестировать и можно покрыть больше сценариев.
Лучше отдельные вызовы протестировать юниттестами и отдельно ещё все это сверху интеграционными покрыть
В нормальную контору не возьмут. В говноконтору с радостью. Тебе в начале карьеры разницы особой нет, при условии постоянного саморазвития.
Говноконтора от нормальной конторы отличается, я так понимаю, не столько уровнем задач, сколько беспорядочностью внутреннего уклада?
Не совсем понял причем тут публичные/непубличные методы.
Я имел в виду, что тестировать вроде как надо одно действие, но я в одном тесте ассертами проверяю, что юзер создан, что папка создана, что дто та самая. Все эти 3 действия выполняются в рамках одного успешного вызова тестируемого метода.
Так вот, надо ли все эти проверки разбивать как-то на 3 отдельных теста или проверять все за раз?
Анон, я правильно понимаю, что понятие "написать игру" в програмировании означает два, абсолютно несовместимых, варианта:
Первый: написать, например, "угадай число" или "крестики-нолики".
Вторая: взять графический движок и просто условно "просто" задать логику уже имеющимся элементам.
И пособия по Java, которые годные, именно о втором варианте, который слишком далеко отходит от "обычного" программирования. Так?
Решил поинтересоваться у анона. Типа, вдруг я что-то недопонял и раньше времени расстроился.
Есть молодые конторы, есть конторы, где разработка ПО не основной вид деятельности, что не мешает им открыть зачастую очень крупный отдел (где на пару опытных разработчиков 20-30 июней). Сам понимаешь, что любой опыт, даже в таких конторах с каждым месяцем придает тебе ценности. Есть Епам в конце концов со своими курсами, неоплачиваемой лабой и минимальной зарплатой в дальнейшем.
Если у тебя один вызов метода дает 3 результата, то конечно стоит их сразу все и проверить. Это тупо быстрее, а это прямое влияние на скорость билда.
> Чем он лучше spring
Вестимо ничем если в 9 вакансиях из 10 на позицию джава-кодера просят знание Spring а не чего либо ещё.
Проблема в том, что изучать Джаву начал всего пару недель назад.
На что мне стоит обратить внимание прежде всего? Что стоит выучить в первую очередь?
Структуры данных думаю, типа «как работает хэшмап, чем эррэйлист отличается от линкедлиста». Принципы ООП в целом, для чего нужны интерфейсы например, возможно чем Java 8 принципиально отличается от 7. Могут спросить знаешь ли какой фреймворк, что такое внедрение зависимостей, как работает REST.
Алсоу, на какую платформу задачи? А то я тебе расписал типичный собес на джава-стажёра/джуна, а если ты идёшь под Андроид кодить - там вопросы другие будут, про жизненный цикл фрагментов приложения и прочее.
> Сказали что работа будет преимущественно бэк-енд
> преимущественно
Охблядь как я люблю такие вакансии. Преимущественно. А потом блядь фронт попердоль, странички поверстай, побудь DBA, настрой Дженкинс-Артифактори-Докер-Гит-AWS-небо-Аллаха, принтер почини, кофе принеси, ТЫЖПРОГРАММИСТ. Обсуждайте сразу на собеседовании какие задачи предстоит решать, периметр обязанностей и компетенций, и прописывайте в контракт. А то заебут и съедят.
На джаве не очень с легковесными серверами. Есть ktor, но он на котлине.
Undertow, Rapidoid
А ты хуле хотел? Хуяк-хуяк и фрутилупс свой сделал? Соприкасаться с обработкой сигналов и изображений на жабе вообще так себе идея если честно.
>Соприкасаться с обработкой сигналов и изображений на жабе вообще так себе идея если честно.
А на чем тогда норм можно со звуком поработать? Мне нужно взять аудиодорожку, определить места наиболее тихие и разбить ее на куски, чтоб на выходе получилось несколько mp3-шек коротких. Самое сложное, что я вижу тут - определить тихие места
Тебе в академических целях чтобы, поучиться работать с аудиосигналом и все такое? Тогда питон или матлаб.
И это тоже. Вообще, у меня есть задача конкретная, но я не против в процессе разобраться в матчасти аудио.
Готовые инструменты брать не хочу, хочу свой велосипед запилить для опыта
Spring WebFlux.
Javalin, Spark
Я на диплом делаю обычный сайт на спринге из гавна и палок в идее ультимат. А дипломник хочет чтоб я что-то с докером сделал. Пока посмотрел только одно видео и немного почитал, так и не понял до конца, в моем случае можно как-то использовать его ? Если да, то как ?
Можно ещё раз для тупых ?
Из всех хитровыебанных статей я толком не понял, для чего оно надо реально.
Описывается то все красиво, а на деле не понимаю.
Вот сделал я свой сайт на винде и хочу проверить, правильно ли все будет работать и отображаться на маке с другим сервером, и для этого я делаю из своего 100 файлового приложения какую-то маленькую хуйню и запихиваю в виртуалку и просто смотрю как оно там работает ?
Или это надо для какой-то удобной коллективной разработки.
На простых примерах, плис
На первых порах можешь думать о докере как об очень легковесной виртуальной машине. Надо например тебе установить базу данных на несколько компов. Установка базы данных - муторный пиздец, нужно править кучу конфигов и прочее. А докер позволит тебе пройти этот ад один раз, после чего просто переносить «образ виртуальной машины» с одного компьютера на другой. Полезно например при разворачивании парка рабочих станций для команды разработчиков, чтобы они не ебали себе мозг с установкой всего нужного. Или например при переносе приложения с одного сервера на другой.
Спасибо, а моем случае с сайтом на спринге в ультимат идее это имеет смысл ? То есть я просто наверну пару ос, докину туда необходимого софта и просто разверну и запущу сайт на локале и увижу что оно работает и все ? Или я смогу ещё там что-то редактировать и менять в коде ?
Прочитал про Test Data Builder и Object Mother паттерны, это что, мне надо миллион этих билдеров писать с закардкоженными данными?
Может стоит использовать рандомизатор типа такого: https://github.com/j-easy/easy-random
вроде интересная тема но я что то вижу вакансии онли без указания ценника, до этого на ноде жс бек немного разрабатывал и фронтом занимался, граф ql юзали хотя нахуй это кому то знать, хочу над большими проектами работать, да и возможность на джваве писать радует.
SAP sap девелоперы
Что значит сразу в джаву
Я если туда пойду то тоже "сразу в джаву" буду
Или что ты имел в виду
Вообще интересная область, обширная хотелось бы с практикующими поговорить
Я имел в виду, что сразу выучить джаву, спринг и вкатиться в джава-энтерпрайз, а не затачиваться под эту немецкую вундервафлю. Я в свое время мельком смотрел что такое САП - это какая-то йоба-платформа наподобие 1С, только застрявшая в развитии своего UI где-то в 80-х годах.
Скорее всего, на джаве там нужно будет писать всякие внешние сервисы, ETL и пр. для САПа, т.е. чтобы нормально устроиться на работу, сначала нужно будет найти крупную компанию, в которой есть куча информационных систем, в основе - САП, и среди этого есть еще и джава. Я уж не говорю про то, что там должны быть открыты вакансии для вкатывальщиков.
По мне, лучше быть обычным джавистом, грести на какой-нибудь галере, потом переквалифицироваться в фуллстек и уйти на удаленку. Но, может быть я просто долбаеб и нихуя не понимаю, и САП круче и перспективнее.
Докер это удобно. Просто ставишь и ПРОСТО работаешь. Смёшься с ребят вроде меня, которым нужно пердолиться с настройкой среды, с настройкой среды IDE, с найстройкой неба, с настройкой Аллаха - всё ради того, чтобы просто запустить халоуворлд с одной подключённой либой.
Меня тоже посещают такие мысли, но читал сап разработчики неплохо оплачивается, поэтому хочу как то узнать подробнее, да и тут почти не обсуждают эту тему
SparkJava, Play!
Такой набор недостаточен для начала посещения собеседований? Высшего образования нет, с ИТ никак связан не был никогда в жизни.
SAP это больше не про разработку, а про ERP. Как например 1С это больше про бухгалтерию, чем про программирование.
Зарплаты у ABAP разработчиков неплохие, но ты намертво привязан к SAP. Если они начнут терять популярность, твои знания станут не нужны.
Для прохождения на джуна - вполне достаточен, но есть трудности с тем чтобы попасть туда. Уже выше писал: велик шанс что отсеят еще на этапе просмотра резюме.
Попробуй познакомиться с парой HR в соцсетях и попросить их тебя порекомендовать куда нибудь. И аутсорсинговые конторы типа Люксофта и Епама, они много хайрят.
Ещё вариант стажировка, но там часто вышку требуют.
Первый по старинке, второй модно-молодежно-стримово. Непонятно нахуя.
спасибо!
Вот вроде читаю о стримах, method reference'ах - всё понятно, кажется доступным, разумным, удобным, а как дело до кода доходит - сразу думаю по-старинке.
Если на скале хуяришь, то однозначно.
Если на жаве, то он обычно стоит в списке технологий далеко не первым и то только у сеньеров-помидоров, так что хз
>>76035
На всякий случай откликнулся на вакансию, где упомянуты REST/SOAP сервисы... с которыми я не очень знаком. Ну, то есть, я делал базовое приложение, принимающее значение от клиента и выдающее на основании этого значения json, но что такое json я представления не имею и ничего, кроме Hello, %name, где по-умолчанию name = world я не делал. Надеюсь, что - если вообще откликнутся и пригласят на собеседование - к моменту встречи смогу более-менее вникнуть в вопрос.
I know what you feel bro
спасибо
Метод референсы хуйня, можешь ее не использовать, IDE подскажет если можно, так и запомнишь. А стримовские темы мне помогла понять кложа и длительная работа с rx, после рксовских стримов обычные джвовские кажутся очень лимитированной хуйней, которые только для замены циклов годятся.
Или это хуета для хипстеров.
Я в котлине мешу говно руками. Использую стримы, лямбды.
Стримы (и лямбды) - это единственное, что позволяет не сойти с ума от реальной работы на жабе
Допустим хочу запилить функционал drag-and-drop, как в современном Gmail, где любое письмо можно "зацепить" мышкой и переместить в какую-то папку. Вот как такое реализовать на практике? И как вообще можно в кратчайшие сроки расширить кругозор по части фронта, чтобы под любую задачу уметь подбирать нужный инструмент?
В первом случае args может быть просто строкой, а не массивом
На месте вызова можно обойтись без явного массива:
1) funcArr(String[] arr) - funcArr(new String[]{"a", "b"});
2) funcVararg(String... args) - funcVararg("a", "b");
Первый круд хуярь на чистом хтмл + ксс, и чистый йява скрипт для валидации форм.
Следующий круд делай с бустрапом и жквери (ажаксом подтягивай инфу нужную)
Для вката хватит, не слушай петухов которые говорят что жквери гавно и нужно реакт и прочий квери.
На работке за деньги будешь ковырять легаси на 6-ой яве с тем самым жквери!
И да, при этом адекватного ТЗ не дают.
Наверное архитектора из тебя хотят сделать. Типа как котят учат плавать - кидаешь в воду, если выплыл значит научился.
Нет. Да и мидлу давать такой таск тоже не стоит. Разве что это одноразовая поебень из серии "наговнокодил и забыл"
Лол, не нормально.
Бери пробник от диджитал оушн и заливай. Там понятная и интуитивная панель управления, а также ты можешь воспользоваться мощщным эй-пи-ай.
Где-то читал, что никто не делает шаблоны с хтмл на спринге, а делают что-то другое и новое( не бейте, неделю учу), отсюда возможен третий какой-то способ ?
Точнее, что лучше и правильнее учить на сегодняшний день? Или через все лучше пройти
нужно сделать sql запрос, вынимающий из одной и той же таблицы несколько значений из одного и того же ряда, прикрепив это к одному конкретному значению поля из другой таблицы - по сути, к идентификатору. Я не понимаю, как это можно сделать иначе, чем к каждой конкретной сущности(предварительно, создав новый класс под запрос, содержащий список в своих полях) создавать новый запрос с извлечением необходимых значений, после чего помещать этот список в поле сущности. Но это ведь уёбищно и количество запросов будет просто зашкаливать. Если бы таблица была одна, как я понимаю, можно было сделать отношение ManyToMany, но в данном случае мне ничего в голову не приходит.
Как определить его кодировку?
Спасибо!
А это там где дают 100 баксов на 2 месяца?
Да, иногда даже какие-то штуки типа flatMap всплывают.
Заебало писать говноскраперы и скрипты для автоматизации на питоне одному в команде. Перспектива крудошлепать на джанге особо тоже не вдохновляет. Хочу вкатиться в яву и интерпрайз. Стоит ли?
если не в мухосране живешь, то лучше уже куда-нибудь в highload и распределенные системы на Elixir/Erlang, вот там точно скучно не будет, по полдня будешь восле вайт борда стоять, риссовать supervisors tree и диаграмы развертывания. А Java слишком мейнстримов, слишком много книг, слишком много всего.
Зависимости мавена влияют только на билд. Проверь что там в сборку приложения попадает.
>распределенные системы на Elixir/Erlang
Erlang это конечно круто, но очень узкоспециализировано. Даже с опытом работу найти непросто, а без опыта вообще по моему анриал.
Убивает тред? ЯННП как оно работает.
офф доки и стаковерфлоу читал.
Олсо что можно написать не особо сложное чтобы конкуренси задрочить?
> Что делать join() в многопоточности?
Что там непонятного, у тебя есть два потока А и Б. Если из потока А вызвать Б.join(), то поток А остановиться до тех пор пока поток Б не завершиться.
Идея состоит в том, что ты запустил несколько потоков и надо дождаться пока они отработают и потом что-то еще сделать.
>Олсо что можно написать не особо сложное чтобы конкуренси задрочить?
JMM прочти и пойми для начала. Чтобы не было "vollatile это прямая запись в память".
Разве это щас ещё используют? Щас же всякие TaskExecutor c ListenableFuture юзают.
100% способов нет, можно попробовать словить краш если кодировка совсем не подойдет.
Вам дан список ролей и сценарий пьесы в виде массива строчек.
Каждая строчка сценария пьесы дана в следующем виде:
Роль: текст
Текст может содержать любые символы.
Напишите метод, который будет группировать строчки по ролям, пронумеровывать их и возвращать результат в виде готового текста (см. пример). Каждая группа распечатывается в следующем виде:
Роль:
i) текст
j) текст2
...
==перевод строки==
i и j -- номера строк в сценарии. Индексация строчек начинается с единицы, выводить группы следует в соответствии с порядком ролей. Переводы строк между группами обязательны, переводы строк в конце текста не учитываются.
Заметим, что вам предстоит обработка огромной пьесы в 50 000 строк для 10 ролей – соответственно, неправильная сборка результирующей строчки может выйти за ограничение по времени.
Обратите внимание еще на несколько нюансов:
имя персонажа может встречаться в строке более одного раза, в том числе с двоеточием;
название одной роли может быть префиксом названия другой роли (например, "Лука" и "Лука Лукич");
роль, у которой нет реплик, тоже должна присутствовать в выходном файле;
в качестве перевода строки надо использовать символ '\n' (перевод строки в стиле UNIX);
будьте внимательны, не добавляйте лишних пробелов в конце строк.
Sample Input:
roles:
Городничий
Аммос Федорович
Артемий Филиппович
Лука Лукич
textLines:
Городничий: Я пригласил вас, господа, с тем, чтобы сообщить вам пренеприятное известие: к нам едет ревизор.
Аммос Федорович: Как ревизор?
Артемий Филиппович: Как ревизор?
Городничий: Ревизор из Петербурга, инкогнито. И еще с секретным предписаньем.
Аммос Федорович: Вот те на!
Артемий Филиппович: Вот не было заботы, так подай!
Лука Лукич: Господи боже! еще и с секретным предписаньем!
Sample Output:
Городничий:
1) Я пригласил вас, господа, с тем, чтобы сообщить вам пренеприятное известие: к нам едет ревизор.
4) Ревизор из Петербурга, инкогнито. И еще с секретным предписаньем.
Аммос Федорович:
2) Как ревизор?
5) Вот те на!
Артемий Филиппович:
3) Как ревизор?
6) Вот не было заботы, так подай!
Лука Лукич:
7) Господи боже! еще и с секретным предписаньем!
Делать я его пытался следующим образом (сразу говорю, return я там просто для проверки написал, выводить он не это должен).
private String printTextPerRole(String[] roles, String[] textLines) {
StringBuilder[] rolesToSB = new StringBuilder[roles.length];
for (int i = 1; i < roles.length; i++) {
rolesToSB = new StringBuilder(roles); //так можно
}
StringBuilder[] textLinesToSB = new StringBuilder[textLines.length];
for (int i = 1; i < textLines.length; i++) {
textLinesToSB = new StringBuilder(textLines); //так можно
}
StringBuilder[] results = new StringBuilder[roles.length + textLines.length];
int a = 0;
//int k = 0;
for (int i = 1; i < roles.length; i++) {
for (int j = 1; j < textLines.length; j++) {
if (textLines[j].startsWith(roles.concat(":"))) {
rolesToSB.append(": \n");
results[a] = rolesToSB;
results[a].append(j);
results[a].append(") ");
results[a].append(textLinesToSB[j]);
results[a].append("\n");
a++;
}
}
}
/for (int i = 0; i < roles.length + textLines.length; i++) {
if (
result = roles[i+1].append(": \n");
}
/
//for (int k = 0; int <= result.length; i++) {
// return result[k];
//}
String[] resultsToS = new String[results.length];
for (int i = 1; i < results.length; i++) {
resultsToS = results.toString();
}
return resultsToS[2];
Выводит что-то типа такого: [Ljava.lang.StringBuilder;@1b6d3586
Подскажите, в чем проблема, и как это все можно сделать получше и красивее. Находил решение на гитхабе, но честно говоря так и не понял его.
Вам дан список ролей и сценарий пьесы в виде массива строчек.
Каждая строчка сценария пьесы дана в следующем виде:
Роль: текст
Текст может содержать любые символы.
Напишите метод, который будет группировать строчки по ролям, пронумеровывать их и возвращать результат в виде готового текста (см. пример). Каждая группа распечатывается в следующем виде:
Роль:
i) текст
j) текст2
...
==перевод строки==
i и j -- номера строк в сценарии. Индексация строчек начинается с единицы, выводить группы следует в соответствии с порядком ролей. Переводы строк между группами обязательны, переводы строк в конце текста не учитываются.
Заметим, что вам предстоит обработка огромной пьесы в 50 000 строк для 10 ролей – соответственно, неправильная сборка результирующей строчки может выйти за ограничение по времени.
Обратите внимание еще на несколько нюансов:
имя персонажа может встречаться в строке более одного раза, в том числе с двоеточием;
название одной роли может быть префиксом названия другой роли (например, "Лука" и "Лука Лукич");
роль, у которой нет реплик, тоже должна присутствовать в выходном файле;
в качестве перевода строки надо использовать символ '\n' (перевод строки в стиле UNIX);
будьте внимательны, не добавляйте лишних пробелов в конце строк.
Sample Input:
roles:
Городничий
Аммос Федорович
Артемий Филиппович
Лука Лукич
textLines:
Городничий: Я пригласил вас, господа, с тем, чтобы сообщить вам пренеприятное известие: к нам едет ревизор.
Аммос Федорович: Как ревизор?
Артемий Филиппович: Как ревизор?
Городничий: Ревизор из Петербурга, инкогнито. И еще с секретным предписаньем.
Аммос Федорович: Вот те на!
Артемий Филиппович: Вот не было заботы, так подай!
Лука Лукич: Господи боже! еще и с секретным предписаньем!
Sample Output:
Городничий:
1) Я пригласил вас, господа, с тем, чтобы сообщить вам пренеприятное известие: к нам едет ревизор.
4) Ревизор из Петербурга, инкогнито. И еще с секретным предписаньем.
Аммос Федорович:
2) Как ревизор?
5) Вот те на!
Артемий Филиппович:
3) Как ревизор?
6) Вот не было заботы, так подай!
Лука Лукич:
7) Господи боже! еще и с секретным предписаньем!
Делать я его пытался следующим образом (сразу говорю, return я там просто для проверки написал, выводить он не это должен).
private String printTextPerRole(String[] roles, String[] textLines) {
StringBuilder[] rolesToSB = new StringBuilder[roles.length];
for (int i = 1; i < roles.length; i++) {
rolesToSB = new StringBuilder(roles); //так можно
}
StringBuilder[] textLinesToSB = new StringBuilder[textLines.length];
for (int i = 1; i < textLines.length; i++) {
textLinesToSB = new StringBuilder(textLines); //так можно
}
StringBuilder[] results = new StringBuilder[roles.length + textLines.length];
int a = 0;
//int k = 0;
for (int i = 1; i < roles.length; i++) {
for (int j = 1; j < textLines.length; j++) {
if (textLines[j].startsWith(roles.concat(":"))) {
rolesToSB.append(": \n");
results[a] = rolesToSB;
results[a].append(j);
results[a].append(") ");
results[a].append(textLinesToSB[j]);
results[a].append("\n");
a++;
}
}
}
/for (int i = 0; i < roles.length + textLines.length; i++) {
if (
result = roles[i+1].append(": \n");
}
/
//for (int k = 0; int <= result.length; i++) {
// return result[k];
//}
String[] resultsToS = new String[results.length];
for (int i = 1; i < results.length; i++) {
resultsToS = results.toString();
}
return resultsToS[2];
Выводит что-то типа такого: [Ljava.lang.StringBuilder;@1b6d3586
Подскажите, в чем проблема, и как это все можно сделать получше и красивее. Находил решение на гитхабе, но честно говоря так и не понял его.
Код немного не так скопировал. Вот так нормально:
private String printTextPerRole(String[] roles, String[] textLines) {
StringBuilder[] rolesToSB = new StringBuilder[roles.length];
for (int i = 1; i < roles.length; i++) {
rolesToSB = new StringBuilder(roles); //так можно
}
StringBuilder[] textLinesToSB = new StringBuilder[textLines.length];
for (int i = 1; i < textLines.length; i++) {
textLinesToSB = new StringBuilder(textLines); //так можно
}
StringBuilder[] results = new StringBuilder[roles.length + textLines.length];
int a = 0;
for (int i = 1; i < roles.length; i++) {
for (int j = 1; j < textLines.length; j++) {
if (textLines[j].startsWith(roles.concat(":"))) {
rolesToSB.append(": \n"); //.append("\n");
results[a] = rolesToSB;
results[a].append(j);
results[a].append(") ");
results[a].append(textLinesToSB[j]);
results[a].append("\n");
a++;
}
}
}
//номера в начале строк потом, в отдельном цикле
String[] resultsToS = new String[results.length];
for (int i = 1; i < results.length; i++) {
resultsToS = results.toString();
}
return resultsToS[2];
}
Код немного не так скопировал. Вот так нормально:
private String printTextPerRole(String[] roles, String[] textLines) {
StringBuilder[] rolesToSB = new StringBuilder[roles.length];
for (int i = 1; i < roles.length; i++) {
rolesToSB = new StringBuilder(roles); //так можно
}
StringBuilder[] textLinesToSB = new StringBuilder[textLines.length];
for (int i = 1; i < textLines.length; i++) {
textLinesToSB = new StringBuilder(textLines); //так можно
}
StringBuilder[] results = new StringBuilder[roles.length + textLines.length];
int a = 0;
for (int i = 1; i < roles.length; i++) {
for (int j = 1; j < textLines.length; j++) {
if (textLines[j].startsWith(roles.concat(":"))) {
rolesToSB.append(": \n"); //.append("\n");
results[a] = rolesToSB;
results[a].append(j);
results[a].append(") ");
results[a].append(textLinesToSB[j]);
results[a].append("\n");
a++;
}
}
}
//номера в начале строк потом, в отдельном цикле
String[] resultsToS = new String[results.length];
for (int i = 1; i < results.length; i++) {
resultsToS = results.toString();
}
return resultsToS[2];
}
Я вот глянул решение на гитхабе - все понятно. Что ты пытаешься сделать - хрен разберешь. Давай ты лучше спросишь, что тебе в том решении непонятно (оно как раз получше и красивее, как ты и хотел)
Ох уж этот спринг.
Обосрался — обтекай, маня :) Градл топчик, а вот мэйвен ваш тот ещё кусок гавна...
По градлу есть неплохой доклад Борисова на ютубе найдешь, в принципе там сильно далеко не лезь, по хиберу почитай как делаются всякие жоины и вообще зачем оно и почему
Так, сейчас читаю про Hashmap, вроде только с ним непонятно было. Но это я уж сам разберусь)
Спасибо, анон! Добра.
Потому что Java FX
Эм, вряд ли в этой задаче решение через мапу является хорошим (как минимум потому что на момент этого задания на курсе коллекции еще не изучались : )
Я говорил про это решение на гитхабе (гуглится по первой строчке условия) : https://github.com/eugenedobro/JavaStepIC/blob/master/RolesAndTexts.java
Аа, я что-то на это наткнулся:
https://github.com/btow/Stepik-java/blob/master/src/BasicJava/lesson_2_4/AnalysisOfTheTextByRole.java
Да уж, наворотил я в своем решении) Почему-то в голове твердо было, что нужно делать именно массив результатов, а не в одну строку все писать, ставя \n.
100% действительно никак, просто потому что есть последовательности байт которые будут валидны в разных кодировках.
Есть библиотеки которые пытаются угадать кодировку на основе частотного анализа символов https://stackoverflow.com/questions/499010/java-how-to-determine-the-correct-charset-encoding-of-a-stream
>>78459
Для начала - вполне, еще рекомендую блог Шипилёва. https://shipilev.net/blog/archive/settable-future/
И поразвлекаться с jcstress пытаясь воспроизвести всякие эффекты которые описаны в данных статьях.
А потом когда соберешься с духом можно попробовать осилить https://shipilev.net/blog/2014/jmm-pragmatics/
Gradle это Ant на стероидах, 100500 способов сделать одно и то же, в том числе и наговнокодить свой велосипед прям в билд скрипте.
Но основная проблема это документация, стандартные таски задокументированны на отвали. А еще к от версии к версии перепиливают АПИ и старые подходы не работают,
>>78569
Ну раз ты такой гуру, то расскажи как в Gradle 5.2 и старше задать имя собираемого jar файла не используя deprecated API?
В 95 у меня не было доступа в инет, но где-то в 98 был только HTML + немного JS (он тогда был примитивный). Апплеты были, но тоже простые: сделать вращающийся банер или динамическую менюшку. Более сложные Апплеты: 3Д и сложные UI (типа офисных приложений) и даже игры появились уже в 200Х.
Я вот смотрю на современный Google docs и понимаю, что это все у нас было еще в начале 200Х
Все работает отлично. Проблема в тебе. Кидай код.
Сабмитили форму на сервер, с перезагрузкой страницы наверно.
Ну так и размести базу сразу на хостинге и обращайся к ней через сеть отовсюду
мимо диванный-теоретик
web
Как там обстановка? Стоит ли идти туда джуном на первую работу в it? И что за система грейдов?
Как по мне, то обстановка не очень. Много легаси, много бюрократии: тупо заюзать библиотеку или фреймворк если их никто до этого не использовал - надо оформлять заявку. Но в большинстве случаев это и не требуется, потому что: во первых скорее всего кто-то уже использовал её народу то дохера, во вторых что тебе использовать за тебя решит тимлид и архитектор. Вот реально у них есть отдел архитектуры который всем указывает что использовать. А еще есть отдел который занимается платформой и все должны ее использовать, хотя иногда она и не очень подходит. Но есть и интересные проекты, тут как попадешь.
Я бы на твоем месте расспросил тим лида, про проект:
- что он делает с точки зрения бизнеса - получишь ли ты какие нибудь полезные знания: т.е. если это платежи по картам - ты узнаешь как работает процессинг, это хорошо. Если это перекладывать данные из системы А в систему Б - это плохо, ничего полезного такого что пригодится потом ты не узнаешь.
- что за технологии используются в проекте: сравни с актуальными востребованными технологиями на рынке
- ну и общие вопросы: сколько лет проекту, размер команды и из кого она состоит чем больше сеньоров тем лучше, есть ли в команде аналитики и тестировщики конечно лучше, чтобы они были
Если ответы на эти вопросы тебя устроят, и тим лид не будет выглядеть мудаком на собеседовании, то смело иди.
Это прямо сильно тормозит процесс. Есть вопросы, но я не знаю, где искать ответ. Мне везёт, когда я нахожу его в комментариях или других курсах, но с человеком это было бы в тысячи раз быстрее
На самом деле, я просто неверно себе представлял задачу и то, как строить осмысленные sql-таблицы и запросы. В итоге, я просто создал класс, который содержит поля под интересующие меня данные, и наполнил такими объектами список, который после наполнения выводится в виде:
сущность1 - значение
сущность1 - значение1
сущность2 - значение
сущность2 - значение1.
Просто мне казалось, что есть какая-то возможность построить таблицу, которая содержала бы в единственном экземпляре "сущность" и после перечислялся бы список интересующих меня полей под эту сущность. Сделать такое можно множественными join table при наличии информации о точном значении полей, которое было бы равным для каждой из сущности. Осознав глупость своей затеи, я решил сделать влоб и никто не придрался -видимо, так можно.
В конце концов, это было первое тестовое в моей жизни при совсем небольшом опыте программирования на Java. Надеюсь, что на собеседовании я смогу произвести положительное впечатление даже несмотря на то, что отправленный мною код мог оказаться полным говном.
Спасибо за развернутый ответ. Предлагают отличные деньги, на порядок выше, чем в других конторах. Буду думать.
А когда ты станешь супер-пупер погромистом, и тебе не будет человека выше тебя уровнем, с кем обсуждать будешь? Ну и подумай рационально, зачем какому-то другому человеку тратить свое время, что бы быстрей было тебе?
вы ещё тут потрахайтесь, петушня
Ищи какую-нибудь конфочку вкатывальщиков/бездельников которые вкатились телеграм/слак, бывает в таких отвечают на тупые вопросы, никто в принципе не мешает постить их даже сюда. Как раз разработаешь резист к токсичности))0)
> понижают ценность своей профессии
А как должно быть? Ты себе сообщество программистов представляешь как тайную ложу франкмасонскую которая должна строго следить чтобы секреты простым смертным не доставались и работали только свои человечки?
Все эти курсы вкатывальщиков - натурально развод на доллары до людей которые мечтают вкатиться в ойти и зарабатывать 300кк в наносекунду работая по полчаса в день.
Нет, конечно я утрирую, для изучения основ языка они подойдут, но после прохождения такого курса ты даже и джуном не станешь, максимум на слабенького стажёра потянешь. Единственный способ на самом деле вкатиться - это взять и начать работать.
1. Не обольщайся после курсов ты максимум на джуна будешь тянуть. А то и на джуна не будешь тянуть требования к джунам у всех разные.
2. Полностью бесплатные курсы делают конторы которым нужен постоянный приток кадров: маил, яндекс, лохсофт и т.п. Как правило эти курсы основаны на материалах стажировок у них, т.е. затраты на создание курса не сильно большие.
3. Или ешё опция: записи очных курсов выкладывают в интернет с целью прорекламировать себя и свои курсы.
Используемый стек:
-Framework: Spring framework
-База данных: MySQL
Описание сервиса: rest-сервис для добавления и получения пользователей и событий для пользователей в базу данных в формате XML.
Но не понятно, можно ли Spring Boot юзать. Как думаете стоит ли использовать Boot или Spring MVC? Боюсь дураком показаться, поржут с чмохи юзающей бут.
> Но не понятно, можно ли Spring Boot юзать
Напиши и спроси, соискатель задающий вопросы на собеседовании и перед выполнением тестового задания - это хорошо.
1) В интернетах нашел несколько способов. Где-то используют бины в xml в которых описывается DataSource и Hibernate SessionFactory, А где-то создается класс с @Config в котором в методах устанавливаются значения (пикрил). Как лучше?
2) Для создания/валидации entity используется свойство Hibernate - hibernate.hbm2ddl.auto. Раньше я делал приложение на Spring Boot и там использовал немного другое свойство - hibernate.dll-auto. В чем разница? Какое-то из них устарело уже?
3) Вкратце поясните для сего нужны Connection Poolы? Сейчас использую Apache commons-dbcp2 кстати он норм?.
Двачую вопрос.
Будет чуть позже, допиливаю пока что
2) коннекшн пул нужен для двух основных вещей:
Соединение поднять занимает время. Если у тебя очень интенсивный сервис с тысячами обращений к бд в минуту, ты будешь только и делать, что открывать/закрывать сокеты
У базы данных тоже сервер не резиновый, если ты для каждой транзакции будешь новое соединение запрашивать, то очень быстро упрешься в лимит.
Поэтому удобнее просто держать пул готовых соединений через которые твои транзакции будут аккуратно ходить
> 1
Java конфигурация всегда лучше, чем XML, и по возможности лучше юзать её.
> 3
Лучше юзать Hikari, он быстрее и его Spring Boot по дефолту юзает.
Попробовал написать скрипт на питоне и подолбиться в очко туда, но что-то не срослось.
Что потенциально может проверять хостинг в таких случаях?
Сейчас вот заменил юзерагента в заголовке с питона на мозиллу. Может поможет. Куда еще глянуть?
Сердечно прошу у Вас небольшого Code Review, гляньте здесь: https://github.com/E-D-W-I-N/task где я наговнокодил?
Вот выдержки из ТЗ: https://pastebin.com/69AT1xVA
Пожалуйста, мне это будет очень полезно.
Из пунктов ТЗ которые недоделал:
1. Обработка ошибок: Ответ сервера – ID созданного пользователя (либо сообщение об ошибке).
Почему не сделал: Не знаю какие ошибки обрабатывать, создаю запись банальным save, да и в случае возникновения ошибки не знаю как вернуть её.
2. Получение информации о событиях: Сейчас я получаю информацию о событиях только по дате, нужно как-то приспособить сюда время.
Почему не сделал: Немного в ступоре, думаю как обрабатывать дату и время из реквеста. Может сделать в Entity события дополнительное поле Time, куда отдельно от даты класть время?
3. Обработка Response и вывод только некоторых полей: c.Ответ сервера – список событий: 1. дата и время события; 2. тип события; 3. описание события, а у меня сейчас выводится полная информация, включая ID. Не знаю как возвращать только нужное.
Недочеты, которые сам нашел:
EventController.java
@GetMapping
@ResponseBody
public List<Event> getEventByIdAndDate(@RequestBody Event event) {
return eventService.findEventsByUserIdAndDate(event.getUserId(), event.getDate());
}
Здесь я получаю из запроса @RequestBody Event event, но запрос по ТЗ включает в себя только два поля, UserID и Дату. Их я в запосе заполняю, а остальное пролетает с null внутри. Нужно как-то получать из реквеста всего два поля.
Сердечно прошу у Вас небольшого Code Review, гляньте здесь: https://github.com/E-D-W-I-N/task где я наговнокодил?
Вот выдержки из ТЗ: https://pastebin.com/69AT1xVA
Пожалуйста, мне это будет очень полезно.
Из пунктов ТЗ которые недоделал:
1. Обработка ошибок: Ответ сервера – ID созданного пользователя (либо сообщение об ошибке).
Почему не сделал: Не знаю какие ошибки обрабатывать, создаю запись банальным save, да и в случае возникновения ошибки не знаю как вернуть её.
2. Получение информации о событиях: Сейчас я получаю информацию о событиях только по дате, нужно как-то приспособить сюда время.
Почему не сделал: Немного в ступоре, думаю как обрабатывать дату и время из реквеста. Может сделать в Entity события дополнительное поле Time, куда отдельно от даты класть время?
3. Обработка Response и вывод только некоторых полей: c.Ответ сервера – список событий: 1. дата и время события; 2. тип события; 3. описание события, а у меня сейчас выводится полная информация, включая ID. Не знаю как возвращать только нужное.
Недочеты, которые сам нашел:
EventController.java
@GetMapping
@ResponseBody
public List<Event> getEventByIdAndDate(@RequestBody Event event) {
return eventService.findEventsByUserIdAndDate(event.getUserId(), event.getDate());
}
Здесь я получаю из запроса @RequestBody Event event, но запрос по ТЗ включает в себя только два поля, UserID и Дату. Их я в запосе заполняю, а остальное пролетает с null внутри. Нужно как-то получать из реквеста всего два поля.
Сходу .idea и task.iml - зашквар, почитай про gitignore и сделай себе нормальный
1. Читай про ResponseEntity, обработка ошибок через try/catch
2. Забудь про Date, используй LocalDateTime и возможности нового date/time API
3. Сделай отдельные DTO и возвращай/получай то что тебе нужно
Еще, убери @ResponseBody из контроллеров, ты и так их помечаешь как @RestController
Ну, с ошибками уже немного разобрался binding result. Мне по ТЗ надо вывести текст ошибки просто. Пометил все поля у Entity где могут выпасть ошибки (Длинна строки, пустая срока, email) и возвращаю ошибки из BindingResult. А вешать try/catch на методы вроде save/update/delete смысла не вижу, они и так нормально отработают, если входных данные валидны.
По функционалу, возвращай ResponseEntity. Там можно http статус возвращать при успехе или ошибках.
В отношениях User и Event у тебя не связаны.
По заданию лучше связать их one-to-many.
Код можно сократить, если при создании объектов использовать конструктор. Полей у тебя мало.
Напиши джавадок к коду на английском.
Про gitignore уже написали.
Напиши тесты.
Если исправить это, то скорее всего пройдешь.
> Сколько времени дали на задание?
До пятницы этой. 3 дня в общем.
Довольно много. Планирую ещё сделать версию на Spring Boot, чтоб показать что и так умею
Скорей всего тупой вопрос, но задам его: кроме как разбиением на массив и последующим перебором, какой ещё есть способ забрать один и конкретный GET-параметр из request?
Я понимаю, что можно тупо заебошить slpit по "&" и далее в for-цикл, но хочется узнать, нет ли уже имеющегося решения?
если ты в спринге то через анноташку @RequestParam
В текущем небольшом опыте научился мокать объекты через Mockito и обвешивать @BeforeMethod / @AfterMethod если надо протестить что-то требующее изменения настроек. Использую TestNG, данные подаю через @DataProvider. Методы стараюсь писать слабо сцепленные. Знаю, что тесты бывают разных видов.
Этого хватит или ещё что-то почитать?
Должен ли я валидировать и Entity и DTO с помощью @NotBlank/@Emal или только DTO. Все запросы у меня через DTO идут, потом ищу в бд entity, мапплю её в dto и снова возвращаю пользователю.
>>82457
>>82537
Снова я. Пофиксил Большинство проблем, проверьте пожалуйста, если не трудно - https://github.com/E-D-W-I-N/task
Есть пара вопросов, во первых, где, потенциально мне нужно обрабатывать ошибки в try/catch, может вы видете слабые места программы?
Во вторых, у меня есть EventDto, её я принимаю в качестве реквеста, ищу нужные данные, маплю обратно в EventDto и отдаю пользователю. В это ДТО у меня есть поле userID, которое я использую для post запросов, чтобы создавать Event. Как мне не выводить это поле при использовании Get запросов? А то сейчас выводится вся дто полностью.
И вообще, нормально ли принимать @RequestBody @Valid EventDto eventDto при таком get-запросе:
<Request
userId = "1"
localDateTime = "2015-11-21 12:48:00">
</Request>
Ведь получается что остальные поля у eventDto не заполнены.
Собрал код из видеоурока https://startandroid.ru/ru/uroki/vse-uroki-spiskom/59-urok-22-intent-intent-filter-context-teorija.html:
https://pastebin.com/9f2xf42k
У меня вопросы которые никак не могу уяснить:
1) Где тут классы\объекты\методы\функции. Можно просто картинкой - выделить где что находится в коде. Авторы видеокурсов будто сознательно путают, а в гугле ещё никто не сделал такой картинки
2) В 16 строке, зачем нужно (this)? Чем его можно заменить? Почему без него программа не работает?
3) В 19 строке, что значит в скобках (View view)? Просто два одинаковых слова, где может пригодиться их менять?
4) В 15 строке (R.id.btn1). btn1 - это название объекта. А что значит R.id.? Конкретно каждая буква - бывают ситуации когда их надо менять?
5) В 11 строке зачем @Override? Что будет, если его убрать?
6) В 9 строке что значит extends AppCompatActivity и implements View.OnClickListener? Точнее, почему не работает, если их убрать? За что отвечают эти фразы?
7) Стоит ли качать другие цветовые темы оформления, сделает ли это код более читаемым?
Заранее спасибо за ответ хотя бы по какому-то из вопросов - это очень ускоряет процесс обучения.
Я бы вообще не передавал данные в get-запросах через @RequestBody я бы юзал @PathVariable и @RequestParam. Многие серверы вообще вроде не принимают тело в get-запросах по умолчанию.
Чувак, это блядь вообще самые основы. Зачем ты пытаешься лезть в Андроид, если у тебя отсутствуют совсем базовые знания? Ни к чему хорошему это не приведёт.
>Чувак, это блядь вообще самые основы. Зачем ты пытаешься лезть в itemName, если у тебя отсутствуют совсем базовые знания? Ни к чему хорошему это не приведёт.
itemName = английский, математика, компьютерная графика, моделирование, вождение, завязывание шнурков
return(мнение анона != хуита)
//returns false
Вот и костыли, исправляющие абсурд предыдущей фразы, подоспели.
return(мнение анона != хуита)
//returns false
Ну удачи тебе, лол.
бамп вопросу
Представил как я бы пытался разобраться в этом коде, если б был ньюфагом, и проорал.
А как лучше валидировать данные полученные через @RequestParam? Сейчас у меня в DTO валидация полей идет (hibernate-validator). А у тела стоит @Vaild.
public Long addUser(String username, String email, String phone) {
User user = new User(username, email, phone);
userRepository.save(user);
return user.getId();
}
Помимо невалидных входных данных.
Может быть какое-то бизнес-исключение, например, в случае, если требуется, чтобы юзернейм был уникальным:
if (isUsernameTaken(username)) {
throw new UsernameHasAlreadyBeenTakenException("Username " + username + " has already been taken");
}
Но обрабатывать такие штуки надо не в try-catch, а в @ExceptionHandler. Там исключение ловится и на клиент отправляется ответ с нужным статусом (в данном случае 409 Conflict) и информацией.
И так обрабатываю через @ExceptionHandler. А в чем разница между if и try-catch? По сути я сейчас так же проверяю, если юзернейм занят, то выбрасываю исключение, которое в отдельом классе с @RestControllerAdvice обрабатывается.
А если бы я выбрасывал это исключение не в if, а в catch, чем бы было хуже?
Мне кажется таких можно отправлять на дажвараш или на другие лохкурсы. Книжку что ли почитай.
> не могу понять самих основ
Для начала неплохо бы научиться читать шапку треда, там антуаны годную вики запилили для таких как ты
Анон, чекни TestContainers, не знаю подойдет ли тебе, просто мне кажется что охуенная тема
ну раз всё через DTO идет, то по идее не нужно, но вообще было бы круто если бы сеньеры-помидоры пояснили
Вот сам реквест
<Request
userId = "1"
localDateTime = "2017-07-09 11:06"/>
Когда принимал @ResponseBody все было норм, но мне нужны всего 2 параметра, поэтому тело не подходит.
реквест парамы лежат в строке реквеста
Пример blablalba.com/path/resource?param1=value1¶m2=value2
Entity валидировать на таком уровне не нужно и даже вредно.
У тебя загрузка полей entity может быть ленивая, ты можешь делать merge, в общем есть куча вариантов когда у тебя не все будет заполнено.
Если поле обязательное - ставь констрейн в базе и на уровне аннотация JPA, другие валидации прикручивать не надо.
Кейс №1.
Часто бывает так, что сперва пишешь имя переменной, а потом хочешь её во что-нибудь обернуть. В примитивном случае, допустим, у меня есть переменная string, я имя напечатал, а теперь хочу вывести её на консоль. Пишу sout+enter, получаю System.out.println();string. А есть ли комбинация, чтобы сразу получать System.out.println(string); ?
Кейс №2.
Можно по какой-нибудь комбинации на строке типа new ClassPathXmlApplicationContext("spring.xml"); сразу получить пустой файл "spring.xml" в ресурсах? Регулярно промахиваюсь уровнем в дереве, ловлю filenotfoundexception, достало.
Сейчас самое "модное, стильное, молодежное" это Open API оно же Swagger. По сути это SOAP для хипстеров.
Ты описываешь в Yaml а не этом олдовом XML список сервисов, параметров которые они принимают и результатов которые они отдают. Плюс схему данных со всеми ограничениями. А Swagger для тебя сгенерирует клиент и сервер которые все эти проверки будут выполнять за тебя.
1. string.sout
2. не думаю, что из коробки такое получится, поищи, может плагин какой-нибудь есть
Я валидирую только DTO. Вообще, у меня для разных операций используются разные DTO. Например, есть сущность User, и для неё создаются DTO типа CreateUserRequest, UpdateUserRequest, UserResponse и тд.
У меня же ламповый spring boot проект на гитхабе. Поставил джаву, нажал кнопку и всё завелось.
Нужно ли включать в git всё что высрал этот node.js? Или включать туда только готовый скомпиленный javascript? Или фронтенд вообще отдельным проектом делать? Или ну его нахуй этот angular2+ и на angularjs делать всё?
Вообще осуществимо ли angular и spring boot в одном проекте, и чтоб всё это собиралось и конпелилось мавеном за 1 присест?
Самый простой и тупой способ — пихать собранный бандл в папку resources, потом создать index.jsp и включать в него свой бандл через <script src="${pageContext.request.contextPath}/resources/js/bundle.js"></script>, потом выдавать эту страницу на все запросы, кроме запросов к REST API.
Более умный способ — запускать фронт-энд на отдельном сервере (Node.js + Express). Собственно, это в этом и заключается основное преимущество SPA — фронт-энд разрабатывается абсолютно независимо и отдельно от бэкэнда. К тому же, с таким подходом можно сделать твоё приложение изоморфным (прикрутить server side rendering), что невозможно сделать в первом способе.
Если тебе нужно связать это воедино, смотри в сторону Spring Cloud Netflix (Eureka + Zuul). Там можно сделать интеграцию приложений, написанных на разных языках.
Ну ты все смешал в кучу. Spring Cloud с микросервисами и роутером в таком простом случае не нужен
тем более zuul уже eol, юзайте spring cloud gateway
Ты имеешь ввиду шапку треда или я что-то такое должен внутри треда найти?
common — объект класса RandomAccessFile. Остальной код работает нормально, это обычная программа для вычисления квадратного уравнения, но окей, залил https://pastebin.com/dNg81x80 . Гитхаба нет еще.
Такс, собственно, если кому интересно, я разобрался, можно в registry добавлять * и он будет норм робить, просто добавляйте interceptor который будет хватать URI и дальше дрочите как хотите, только не забудьте что WebSocketHandler это синглтон вроде как
Ты какую-то хуйню написал. Зачем тебе обращение по индексу при записи в файл?
Не могу понять следующее. Читаю доку, https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/test/context/testng/AbstractTestNGSpringContextTests.html ,она гласит, что если в тесте должен использоваться applicationContext, то надо:
- унаследоваться от AbstractTestNGSpringContextTests
- разметить класс как @ContextConfiguration с параметром "адрес spring.xml"
Но у меня нет, spring.xml, у меня всё на аннотациях.
Как ему сказать "проскань такие-то пакеты"? Или только продублировать component scan в XML?
Ещё немного покурил маны и SO.
Помогло в явном виде указать используемые классы из каждого пакета, типа:
@ContextConfiguration(classes = {ClassFromPackage1.class, ClassFromPackage2.class})
А через ComponentScan аннотацию кажется нельзя...
Чего бы почитать про security? Я вообще ничего не могу в секьюрити.
Вот только недавно с Hybris проекта ушёл. Впечатления негативные. Спрашивай свои ответы.
Рассказываю:
Hybris это проприетарная SAP-параша сделанная на Спринге, и с уебищным фронтом. Из коробки может и норм, но какой магазин будет менять свои бизнес-процессы устоявшиеся под новую систему? Да никакой. Так что начинаются пляски с кастомизацией в которых приходится вслепую изобретать велосипеды.
Крайне уебищный движок для описания воркфлоу, ебнутая смесь sql и csv для импорта-экспорта данных, неочевидный интерфейс и ебнутый цикл поддержки.
Плюсом ко всему этому идёт традиционная проблема всех SAP-проектов: деньги заканчиваются на стадии интеграции, так что сотрудников обучать никто не собирается. Вместо этого нанимают гребцов галерных чтобы они для тети Сраки из отдела продакт-менеджмента перебивали её сраные эксель-файлики в базу продуктов.
Это Processing. Он же основан на java поэтому решил обратиться сюда.
Пишу авиагоризонт. Как сделать так что бы приповороте поворачивалось относительно центра
Документация может и есть, но я ее в глаза не видел потому что лицензия у клиента истекла, так что ни поддержки, ни документов, нихуя. Из коммьюнити - полтора фаната пишут статейки и комитят на гитхаб примеры.
Так что нахуй это болото кровавого энтерпрайза, если только работу надо найти вот прям щас и срочно.
Либо ты так хитро завуалировал слово баттхерт, либо я тебя не понимаю.
Предлагают какое то обучение но статья в ебаном ИТ как то отталкивает даже пробовать идти к ним на собес.
https://ebanoe.it/2017/01/04/andersen-internship/
Галера как галера, ничего сверхъестественного. Нанимай стажёров и джунов, продавай как сеньоров, разницу спускай на блэкджек, шлюх и кокаин. Если хочешь набить опыта чтобы устроиться в более-менее норм контору - придётся вот такое вот говно жрать 2-3 года. По другому никак, особенно если у тебя нет профильной вышки из не самого хуевого вузика.
Какие там задания?
Что конкретно нужно самому написать, пускай и под присмотром ментора, чтобы это удовлетворило интервьюеров на собеседовании?
Может есть в треде люди, которые проходили такие курсы?
Предлагаешь итди и не выебываться?
Просто блять как то пиздос за нихуя полгода - год работать.
Сейчас подскочать адепты жавараша и прочего говна.
По сути никто тебя после курсов сразу на работу брать не будет. Ты в таком же положении как и все остальные. Только учился тому чему тебя учили, а не сам по нормальной литературе / задачам.
Есть таблица Interview (пик 1) в ней указаны ссылки на Application (заявление по которому проводится собеседование) и User (человек, с которым проходит собеседование). И есть таблица SuccessfulCandidates в которую попадают User-ы которые успешно прошли собеседование.
Вопрос в том, какие поля делать в SuccessfulCandidates. Соответственно есть 2 варианта:
1 - В SuccessfulCandidates будет 2 поля (ID и Interview) и при выводе фронт мы будем получать необходимые поля благодаря связям. Например, в Interview есть ссылка на Application, который в котором есть поле Vacancy (Вакансия, на которую подали заявление). И на фронт идет successfulCandidate.getInterview().getApplication().getVacancy()
2 - Дублировать все необходимые поля в SuccessfulCandidates. Основываясь на примере выше: Создать в SuccessfulCandidates поле String vacancy, которую заполнять при создании объекта SuccessfulCandidates successfulCandidate.setVacancy ( Interview.getApplication().getVacancy() ) и потом на фронт пускать successfulCandidate.getVacancy().
Насчёт не выебываться я ничего не говорил, гребсти говно забесплатно - безблагодатная хуита. Просто нужно заставлять работать по закону. Предлагают сто баксов в месяц на испытательном сроке а за плечами хуй опыта и желание вкатиться в айти? Можно пойти поработать, через полгода уже можно вакансию получше найти если ты не совсем долбоеб. А вот спускать на тормозах отсутсвие договора и начинать где-то работать не имея на руках никаких бумаг я бы не стал, кулстори про Адамовского поехавшего работать в Чехию без документов - хрестоматийный пример. Сначала пусть сделают бумажку по которой они мне платят 100 баксов в месяц на испытательном сроке и 300 баксов после испытательного срока.
> что именно преподают на всяких Java-курсах, после которых сразу можно идти искать работу
То же самое что и в книжках уровня «Java для чайников». А самое смешное и грустное - что на таких курсах преподают именно такие вот люди прочитавшие пару книжек, а реального опыта не имеющие нихуя. Так что если хочешь вкатиться в Джаву или любой другой язык программирования - самым правильным вариантом будет осилить десяток задач по циклам, массивам и базовым структурам данных и начать делать какой-нибудь пет-проджект с нуля, попутно гугля что и как делать и сопутствующие ошибки. А надеяться выучить синтаксис языка, стандартную библиотеку, пару сопутствующих фреймворков и прокачаться по архитектуре, после чего искать работу - тупиковый вариант.
Окей. Поинтересуюсь насчет оформления. Да предлагают меньше 100 баксов в первые 2 месяца, которые ТИПО могут и не 2 месяца быть а быстрее и потом 250 еще 3.
А требования как на обычного дева. Включая спринги хуинги и чтобы уже все умел. Поэтому и ахуел немного от сочетания запросов / количества денег.
Туда вайтишников меня возьмут, онли прочитавших пару книг под стать требованиям?
Охохо, бульбашские конторы начинают завоевание. У нас на онлайнере была на днях статья о них ,первый же коммент - спецам даже не думать. Ну а вкатывальщику похуй, конечно.
Позвонят по телефону, спросят подавал ли заявку, что вообще знаешь и умеешь, можем ли мы с вами пообщаться на английском, вил ю спик эбаут ё фэйворит бук. Ок, приходите на собеседование.
На собесе 3 принципа ооп с примерами из жизни, эскюэль, джойны, транзакции ну и прочие основы. После тренинга якобы зовут в лабу за бесплатно пока не найдут проект. Из группы возьмут 1-2 человека, могут не взять вообще никого. Без военника не берут вообще.
А сам по себе трейниг без перспективы попадания на галеру что-то стоит для вайтишника?
На доу пишут, что туда больше из-за английского берут, чем из-за знания основ. Это так?
Бля прочитал это все - и как-то плохо стало. Сам собираюсь на стажировку куда-то идти, но чтоб вот так не 2 месяца, а полгода или сколько почти за бесплатно ебаться, мда.
Я ещё и удовольствия сильно много от всего этого не испытываю. А учитывая, что я иногда получаю по 500$ в хохлостане, за минут 30 работы в день - это будет шок наверное, бесплатно пол года пахать
Отпиши потом в тред, если попытаешься, я в другом городе на такое хочу пойти, вот диплом добью только
Мне что, вот так вот позвонит тупая пизда, которая кроме сосания хуев в жизни ничего не знает, и потребует разговаривать с ней по телефону на английском ? Немного по .скотски, разве нет ?
Без английского по телефону ты даже не дойдешь до собеса. Тренинг пустой, но за счет того, что тебе необходимо будет сделать задания, опыт набирается неплохой, освоишь xml/xsd, сервлеты, jsp, узнаешь на практике пару шаблонов проектирования. Сделаешь первую законченную систему-проект (часов на 30-50), который будешь показывать будущим работодателям.
>которая кроме сосания хуев в жизни ничего не знает
Как будто что-то плохое. На самом деле разрабатывать глотку не легче, чем вкатываться в айти.
Лол, ты с луны свалился что ли? Это будет перед каждым собесом на джунские позиции, которых у тебя будет еще немало. Поэтому сразу заготовь по 5 предложений на следующие темы
-последние выходные
-любимый фильм
-любимая книга
-хобби
Я как-то был на собесе на трэйни и меня спрашивали на английском по джава кору, отличие интерфейса от абстрактного класса, что делает инстанс оф и тд. Вот там я по настоящему охуел.
Как будто сегодня вкатиться в айти это нечто нереальное и удел избранных, лол.
На самом собеседовании это норма, я не спорю. Но без зрительного контакта сразу что-то спрашивать по телефону, чтобы просто пригласить в офис, пиздец же, не?
Спасибо, анонче.
Пользуясь, моментом прорекламирую охуенный способ качнуть спикинг - Effortless English A.J. Hoge - язык развязывает неслабо, но и времени въебать на это надо немало. Надеюсь, его мне будет достаточно, чтобы интервью пройти.
Базовые вещи я давно освоил.
Просто не хочу тратить время впустую на всякие свинги, апплеты и прочую поебень. Мне нужны сведения именно по фреймворкам, архитектуре, чтобы изучать сразу то, что может быть востребовано.
Сейчас, например, вопрос, юзать DAO или Spring Data? О первом в интернетах противоречивые отзывы, второе хз, использует ли кто-нибудь вообще.
Вот такому на джава-курсах как раз и не учат.
Нашёл слитые курсы от itvdn, но не знаю, есть ли смысл тратить на них своё время.
Видосики, это по быстрому въехать в тему.
Задрачивать нужно с книгой, выполняя все задания и запуская весь код.
> юзать DAO или Spring Data?
Вопрос не имеет смысла.
DAO это паттерн проектирования, объект для доступа к данным. Репозитории, сгенерированные Spring Data — это DAO. Если ты сам напишешь класс, который будет общаться с БД через EntityManager или с помощью нативных запросов через спринговский JdbcTemplate или, упаси господи, голый JDBC — это тоже будет DAO.
>за две минуты нашёл книгу, в которой материал объясняется в 30 раз быстрее JavaRush'a и в 15 раз быстрее SoloLearn
>ГИДЕНАЙТИТАКОЕВИНТЕРНЕТАХ?
Кто нибудь может подсказать какие зп в Неткракере после уц? Хочу осенью пойти туда рискнуть, но как бы не проебаться потом, когда копейки предложат на собесе(мимо ойти студент, жаву знаю, в спринге копаюсь на spring.io). В Поволжье 40-45к реально на выходе получить?
Ну или если нереально получить то какие там перспективы сейчас? А то нашел в архиваче темки за 16 год, но мб что то на галерке поменялось за 3 года.
прости, я не знал, что ты даун
Можно ли задеплоить свой сайт черед докер?
Хочу задеплоить на амазон. Делаю всё в ультимат идее на винде (хз, зачем написал). И тут появилась пара вопросов.
1) мне сказали, что просто с винды взять и задеплоить не есть так хорошо, может появиться много еботни и лучше делать это через линуксы. Действительно это так ?
2) получится это сделать с помощью докера? Дело в том, что мне надо обмазать мой проект докером, а тут появилась возможность? Или это не делается через докер ? Не работал ещё с докером, поэтому не сильно понимаю. Будет ли в данной ситуации отличаться деплой с виртуальной машмны от, если это работает конечно, от докера ? Или это одно и тоже
Спасибо
А ты гуглить пробовал сначала?
https://dzone.com/articles/a-start-to-finish-guide-to-docker-with-java
Докер и на винде вполне прилично бегает
Я немного криво объяснил.
У меня получится через докер на винде накатить какой-то Линукс и через этот виртуальный ос осуществить деплой ? Я просто не знаю, насколько отличаются возможности виртуальной машины с ос на ней, от такой же ос, но скачаной в докере. Через докер можно сделать деплой ? Или там какие-то более слабые задачи решаются
> через этот виртуальный ос осуществить деплой
Что ты именно хочешь сделать с докером? Ты хочешь, чтобы у тебя приложение внутри докер-контейнера бежало, или ты хочешь какие-то линуксовые инструменты для деплоя через докер запускать?
Стажировка, однозначно. Месяц работы как 3-4 домашнего обучения.
>или ты хочешь какие-то линуксовые инструменты для деплоя через докер запускать?
This. Это возможно ?
Основная задача - деплой.
Реализация: 1) через винду 2) если не получится через винду - виртуал бокс с другой ос
3) если докер с линуксом каким-то может заменить виртуал бокс с линуксом - то через докер. Я просто не понимаю всех возможностей докера. Может он такое делать ? Даже если это бессмысленно но может - это гуд. Мне надо все равно куда-то к сайту докер допихнуть и раскрыть, тк у меня тема такая
К слову, я пока вообще не знаком ни с деплоем, н с докером, так что вопрос может показаться глупым
На курсхантере есть очень много слитых курсов, глянь
Ещё на торрентах можно поискать, но там не очень много
Саратов, ну как там гребется? Вроде бы по отзывам понял что галерка получше ебамов всяких, но вот вопрос с зп открыт
Лол, я думал, что деплой - это размещение сайта на хостинге. Лучше я все таки ещё почитаю, перед тем как задавать вопросы...
не бойся обосраться
если фирма норм, то можешь не готовиться - ты и так знаешь что знаешь
если фирма хуёвая, то готовься, не готовься - всё равно ничего за вечер не выучишь
Подробнее тут: https://stackoverflow.com/questions/55852873/spring-boot-get-object-from-requestparam
Причем идентичный код использую в другом контроллере, и все в порядке.
Никто не сталкивался с подобным?
>Подробнее тут: https://stackoverflow.com/questions/55852873/spring-boot-get-object-from-requestparam
По ссылке выше описан другой контроллер (add(@RequestParam("departmentId") Department department), который также принимает из шаблона ID и абсолютно нормально находит по этому ID объект.
Понятия не имею в чем различия между ними. Лишний раз к репозиторию обращаться не хочется. Одинаковый код работает оп разному. И отдебажить нельзя ничего, так как аннотации - это Non-executable code.
>который также принимает из шаблона ID и абсолютно нормально находит по этому ID объект.
Ты хочешь сказать, что объявление вида @RequestParam("departmentId") Department волшебным образом заставляет спринг сходить в репозиторий и вытащить по id объект?
>И отдебажить нельзя ничего
Можно дебажить по исходникам спринга, начав с места, где вылетает исключение. Научись так делать, полезный навык.
>Ты хочешь сказать, что объявление вида @RequestParam("departmentId") Department волшебным образом заставляет спринг сходить в репозиторий и вытащить по id объект?
Да именно так. Ну, насколько я понимаю. Именно так это и работает, дебаг объекта показывает что он именно по id получает нужный объект
Continuous Development Integration? Отпочковалось в отдельное направление, DevOps называется. Знать принципы полезно, но вот если какая-то контора тебе предложит ищем разработчика со знанием Jenkins, Kubernetes, Artifactory - шли их нахуй, потому что выльется это все в традиционного мальчика на побегушках под названием тыжпрограммист
Нет, от того, что будешь писать equals и hashCode с помощью IDE (в тех случаях, когда они вообще нужны), потеряешь немного. Алсо, ломбок не нужен, когда есть котлин.
ПЕРЕКАТ БУДЕТ? МАЛИНОЧКА ЛАГАЕТ
ПЕРЕКАТ БУДЕТ? МАЛИНОЧКА ЛАГАЕТ
ПЕРЕКАТ БУДЕТ? МАЛИНОЧКА ЛАГАЕТ
ПЕРЕКАТ БУДЕТ? МАЛИНОЧКА ЛАГАЕТ
ПЕРЕКАТ БУДЕТ? МАЛИНОЧКА ЛАГАЕТ
ПЕРЕКАТ БУДЕТ? МАЛИНОЧКА ЛАГАЕТ
ПЕРЕКАТ БУДЕТ? МАЛИНОЧКА ЛАГАЕТ
ПЕРЕКАТ БУДЕТ? МАЛИНОЧКА ЛАГАЕТ
Contexts and Dependency Injection for Java EE
>>82311
>>82314
>>82425
>>82457
>>82537
>>82865
>>82871
>>83030
>>83055
>>83067
>>83073
>>83105
>>83111
>>83185
Это было собеседование на стажировку (оплачиваемую). В ходе собеседования много где протупил. Не знаю многого в области памяти, equals&Hashcode и все такое. Как в разных коллекциях память распределяется и как расположены объекты внутри. Но в остальном все хорошо.
Хотя меня не очень обрадовал проект на стажировке. Будем(там группа) делать SOAP на Apache Camel. Видимо нас решили сразу в какую-то яму кинуть и кто вылезет, того и взять дальше.
Ebobo? Jdbc - это основа основ для прямой работы с бд скриптами sql. А уже на его oснове сделаны более-удобные вещи вроде всяких ORM.
На здоровье, анончик, успехов
Алсо есть ли вообще смысл swing учить, он используется где-либо? В данный момент я пишу свое первое всратое приложение с GUI, посоветуете юзать swing/awt или что-то иное? И целесообразнее ли мне прописывать все окошки и размеры, или делать, как видел на ютубе, что в Eclipse юзают какой-то тул где окошки/кнопки и тд делают без написания кода, а просто перетаскивают в программу. Поясните плиз за это, как лучше делать нубу?
Java = Enterprise/Android. Другого выбора у тебя нет.
Либо ты учишь Java EE/Spring (И все что с ними связано), либо Android SDK. Так что не трать время на ерунду.
Эхх, если бы была возможность вкатиться в спринг, даже в том же ДС маминому вкатывальщику. По итогу только вот такие вот вакансии висят, где нужно 3 года опыта.
Swing сейчас мало где юзается на сколько я проинформирован (ЖидБрейнс не в счет), так что аноны правы, ебашь бек и html+css или ведро
На вопрос про текст не ответил, да и хуй бы с ним, сам полтора хелоуворда написал на свинге
>какие простенькие проекты пилить без gui?
Можно делать фронтэнд к своим рест-сервсисам на спринге, будет тебе веб-гуй, но придется учить еще и фронт, быть слегка фулстеком. Хотя в дальнейшем все равно пригодится.
А если учить фронт не хочется, но нужен эффект "гыы, моя программка работает, что-то отображает", можно делать телеграм-ботов. По-моему, веселый вариант для бэкэнд-вкатывальщиков. Делаешь только сервер, а гуй тебе уже нарисовали у Дурова.
Сейчас уже куча всего готового, если нужен гуй чтобы Спринг учить, то есть всякие Vaadin и прочее, которые позволяют на коленке сплепать нормально выглядящий гуй за пару десятков минут. Хотя анон выше прав, зная какой-нибудь Angular/React будешь востребованен на рынке
>собираюсь учить EE+Spring
Не трать время на EE. Даже если попадешь работать туда, где оно есть, знаний по spring хватит для начала.
А разве так уж много вакансий для вкатывальщиков со спрингом? На том же хх в ДС полтора спринговых джуна без опыта требуются, и те от сбера с ахуенными требованиями.
Не меньше, чем с EE. Просто в джун-вакансиях часто в требованиях пишут только базу, без упоминания конкретно спринга или подобного, что в общем и правильно.
Хызы, когда не вижу спринга или хайбернейта, сразу представляю, что это древняя шарага и даже не кидаю резюме.
А на самом деле там стартап на акке или реактивных микрофреймворках с nosql-хранилищами
А на самом деле пикрил.
потому что нет опыта наверное
Сейчас пишу на python/django понимаю во всяких архитектурах/алгоритмах/паттернах и пр. Хочу вкатиться в Jsava но нет желания проходить курсы "ой а вот это if оно для выбора". Синтаксис самой джавы понятен и приятен. Подскажите и посоветуйте в сторону каких фреймворков идти. По работе не хочу в веб в виде сайтиков он чет подзаебал, андроид пока не уверен ибо не знаю что там. С радостью писал бы системы для банков и пр.
Витя, ты?
Тогда тебе в микросервисы, дружище. Самый известный фреймворк с здоровенной экосистемой это Spring. Напиши парочку хелоувордов. Можешь взять какой нить свой Жанго проект и переписать под спринг. Еще почитай про Gradle или Maven. Есть еще более менее годная книжка под названием Spring in Action, бери четвертое издание, чекай примеры, но учти что они слегка устаревшие. Ну и сюда пиши если что.
Короче посоны, такая хуита, я работаю около года околоджавистом, спринг, хикариЦП, jpa, мавены, томкаты и тд, но я в эту область вкатился случайно, и джаву немого трогал только когда учила в универе (делал консольки, пару простых игры для андройда, аля флопибёрдс), по итогу на работе универские знания оказались хуитой. (к тому же после окончания универа и устройства на работу был промежуток в 4 года, когда я вобще не прогал) В итоге не прочитав ни одной книги я работаю с легаси кодом, который распределён на кучу связывающихся друг с другом REST сервисами.
Читая чужой код, гугля классы, аннотация, читая джавадоки у меня в голове лишь отрывистые знания о джава и спринге. Но поскольку базовых фундаментальных знания нет, то иногда при казалось бы нетрудной ошибке/задаче теряю кучу времени и нервов.
У меня даже нет полного понятия как работает компилятор, как путаюсь как собираются пакеты, как читать логи и тд. Многое делает IDE и я остаюсь в неведение. Сервлеты, фильтры знаю отрывисто. Бардак в голове.
Вобщем вопрос такой, учитываю что какие-то отрывистые занания у меня есть, где мне заполнить недостающие, по джава, а затем спрингу и популярными артифактами. Хочу быстрой пройти джавараш, будет ли это полезно в моём случае? Или есть ли подобные интерактивные курсы по джава/спрингу, которые можно пройти играючи и сразу делать задания на практике?
PS С англ проблем нет.
На что обратить внимание?
Что можно мониторить не устанавливая доп софт?
Бля, ситуация конечно у тебя странная. В твоём случае нужно индивидуально решать наверное. Энивей, идти на джавараш не варик. Если нужно подтянуть кор джавы то точно не туда. Попробуй книгу Core Java for the Impatient, может поможет, сам не читал. Насчет интерактивных курсов хз, был курс на Юдеми какой то слитый, где челик рассказывал всю хуйню с нуля, но там тоже скорее всего ловить нечего. Если есть время посмотри книгу Spring "версиянейм" для проффессионалов. Там вроде всё даже по полочкам расписано. А еще обязос посмотри доклады Евгения Борисова на ютубах Спринг-потрошитель там про кишочки спринга говорят. Гораздо увлекательнее чем вышеупомянутая книга. Удачи
Своими словами.
Запилите стори, если да.
В моем миллионике хохлостана, который точно входит в топ-5 городов, вообще ничего нет. Только стажировка в епаме. Все. Год следил, ничего не появлялось, везде джуны в главный банк страны и прочее, где, как я подозреваю, сразу придется ебашить. Печально от осознания такого сразу, выбрал ойти популярный язык и всего один вариант, даже не в мухосрани
Попробуй задрочить алгоритмы и всю теорию жава кора + многопоточность. Потом задрочить SQL и сложные запросы, тестирование и прочее дерьмо, что обычно спрашивают на технических собесах. Потом ебашишь спринг и микросервсисы.
Потом пишешь какую нибудь хуйню для закрепления типо генратора лабиринта с гуи + потом его решалку. Выкладываешь на гитхаб. Пишешь хуюйню на спринге с БД, например блог + обмен обмен сообщениям с регистрацией пользователей, фронт на реакте каком нибудь. + все пакуешь докером + например залить на хероку.
Пишешь еще всякой хуйню заливаешь в гит. Больше хуйни.
Указываешь гит в резюме. Везде в сопроводительных письмах указываешь свой сраный гит. Молишься алаху и будде чтобы кто то туда вообще посмотрел.
Пробуешь собеседования везде, даже куда требуют опыт работы. Даже просто жава дев.
Как то так.
Есть несколько вопросов к java-господам которые могут в ней работу с БД.
1) Зачем нужен ORM если есть Stream?
2) Стоит ли вкатываться в яву pl/sql oracle - разрабу?
3) Есть ли какие-нибудь книги/пособия по работе с БД в java? Best practies какие нить
Чую жёппой что с pl/sql скоро останусь без работы и надо учить что-то из прикладных языков для работы с данными etl/dwh/olap.
редирект в пикриле, как я понял, идет методом DELETE. как сделать чтобы он шел методом GET?
Ajax, ну или у формы делать скрытый атрибут и в контроллере его смотреть, но это пиздец костыль
Слушай, как вариант бахни в свой RequestMapping
method = {RequestMethod.GET, RequestMethod.DELETE}
Тогда, ВОЗМОЖНО, умный спринг не смогя редиректнуть по делету бахнет по гету, с другой стороны нужно не обосраться чтобы этот твой метод по гету не тригерился, поиграйся сам, если лишишь проблему, напиши
Редирект не может "идти методом". И ты делаешь какую-то бессмысленную хуйню, пытаясь отвечать редиректом на delete. Скорее всего тебе нужен post, @PostMapping.
как нужно отвечать на delete?
вот в форме редактирования сущности, например, человек нажал на кнопку удалить, после удаления его должно перекинуть на другую страницу (что я пытаюсь сделать редиректом). Или это нужно делать уже в JS?
Понятно, что можно сделать PostMapping("/delete/{id}"), но, по-моему, это не совсем правильно
Если у тебя голое формы, без js, у тебя есть только get и post. Ты можешь запостить форму нажатием кнопки, и тогда браузер обработает ответный редирект. delete и остальные http-глаголы доступны, если ты делаешь запросы через js. Тогда и редирект ты будешь делать через js, а с сервера можешь отдавать обычный json, в котором будет указано, куда редиректить.
Про CDI перед этим ты спрашивал? Нет, не актуален. Из EE-стандартов актуальны Servlet API, JPA, в меньшей степени JMS и JAX-RS.
Ты делаешь круд, значит у тебя на фронте где-то есть кнопка "Удалить", через JS вешаешь на нее обработчик, в нем через jQuery или Axios отправляешь delete. На контроллере ловишь это, удаляшь сущность, дальше редиректишь на view с общим списком сущностей
Либо вариант "по-быстрому", @GetMapping("/delete/{id}"), на фронте делаешь кнопку вида <a href="/delete/" + freemarker.id>
вот выше мне написали, что отвечать редиректом на DELETE это хуйня. Да и с собственно редиректом у меня проблемы (посты со скриншотами мои)
У тебя шаблонизатор и страницы генерятся на сервере, редирект норм, это самый простой способ обновления данных. Сделай через него, потом уже будешь делать SPA CRUD
ладно, спасибо. сделал пока через вариант "по-быстрому"
Расплывчато формулируешь. Именно что-то специфичное для томката тебе нужно? Для начала у любого java-приложения можно через jmx мониторить использование памяти, количество потоков, активность GC. Об этом знаешь что-то? На уровне самого сервлет-контейнера разве что использование пула потоков http-обработчиков имеет смысл смотреть.
Этот анон подсказал не самый короткий путь. Алгоритмы у тебя не спросят, многопоточность джуну не нужна, только самые основы. SQL - знать до джойнов, уметь запилить с нуля базу со связями, например, интренет-магазина. В гуи не лезешь вообще. А вот в спринг лезешь сразу после джавакора (+шилдта и хорстмана), книжки от хэдфэст про jsp&servlets и пишешь небольшой проект, но законченную систему (типа как на курсах в епаме). Обязательно используешь все фишки джава 8, спрашивают на ВСЕХ собесах. В конце концов читаешь джава код конвенш, из консоли захуяриваешь все на гитхаб, делаешь резюме конфеткой(вот тут надо реально постараться, это искусство) и откликаешься на все вакансии, где требуется программист с опытом от года(!). Да, ну и конечно вызубриваешь все вопросы на джуна, а еще лучше на мидла. Но в начале, изучение джавы и подготовка по вопросам будет несколько расходится, пока все не сложится в единую картину. Без вопросов у тебя даже не дойдет до тестового.
Алгоритмы спросят 100% если нормальная контора. Хотя бы понимание что такое сложность алгоритмов и чем вставка в середину арейЛиста отличается от вставки в середину ЛиндекЛиста ничем возможно попросят изобразить любую сортировку или бинарный поиск.
Спросят за дженреики и всякие коллекции.
SQL хотя про нормализацию/связи ко многим и т д.
Могут дать вопрос выполниться вот это дерьмо с System.exit(0) и тому подобное.
З.ы.
Многопоточность дает джуну сразу + 30-40к к деньгам на руки, если она требуется в проекте.
1. Нихуя не понял о чем ты. Если ты хочешь через java stream мапить таблички на объекты и обратно, то это плохая идея, ORM как раз это и решает
2. Конечно, особенно если знаешь и уже работал с Постгрес/Оракл
3. Начни с гугления Java JDBC Tuturial, потом можешь начать читать Java Persistence with Hibernate, потом, если хочешь упороться, Pro JPA 2. Ну и конечно же Спринг, без него никуда.
Ок.
Тогда поясните почему от ORM оказываются?
https://stackoverflow.com/questions/452385/what-java-orm-do-you-prefer-and-why
https://blog.jooq.org/2014/04/11/java-8-friday-no-more-need-for-orms/
Потому что на такие вопросы пишут ответы люди у которых кодеж - развлечение для себя. А когда у тебя каждый день - тырпрайзная гонка и продукт должен быть готов ещё вчера - нет времени думать об «эффективности запросов к базе» и прочему нытью, проще все сделать через орм. А за самописечки в тырпрайзе жестоко наказывают, потому что нужно тратить больше времени на отладку.
Да и вообще, писать на Джаве и после чего начинать размышлять о неэффективности SQL-запросов сгенеренных ORM - это как минимум странно.
Сейчас по ссылке 403 ошибка.
Предлгаают 1 в 1 как в статье выше в ебаном ИТ.
Без оформления за 5к хуярить на своем ноуте неопределенное количество времени и потом может быть дадут 20клол и оформят.
При это оценили уровень знаний как очень высокий.
Тесты на проверку знаний на гикбрейнсах (!там в тестах ошибки есть в ответах / вопросах!), очень странный собес технический где толком ничего не спросили.
И на все вопросы про оформление и условия отвечают, как будто нахуй посылают. Мол ты тебя берем а ты еще и нос воротишь. Ахуеть.
Чисто пройти собес наверное полезно для себя, понять если где то не помнишь / знаешь. А вот бесплатно горбатиться как то ну его нахуй.
рублей российских
Лайфхак: почти все Swing компоненты поддерживают форматирование с помощью HTML.
jButton.setText("<html>fnord<br />foo</html>");
Аноны, есть пара вопросов, спасибо.
1) я хочу добавлять картинки к своим постам на сайте. Мне надо, чтобы изображения были одного разрешения. Те если сильно большое - оно его преображает в заданное разрешение, а если совсем маленькое - посылает нпхуй. (Вроде это так работает, хз) Делаю фримаркер и бутстрапа. На чем мою идею и где реализовывать ? В хтмл файлах чем-то или вообще в коде ?
2) отправляю письма гмаилом для подтверждения акков.
В том туторе где я взял решение, у многих сообщения не рассылались, пока они не меняли свой интернет. С чем это связанно ?
>На джаве фриланса нет.
ЧОМУ?
Я только вкатился и не понимаю. Та же ультимат идея, что может быть лучше, удобнее и быстрее для разработки ?(да жрет много, зато ничего настраивать не надо, тыкнул пару кнопок и само за тебя сделало)
Любые бд, фреймы, лица подключаются за секунды.
Или пхп типо такое простое и на реализацию той же задачи уходит на 100 строк кода меньше ? А если надо что-то нормальное сделать, не гавно из 5 страниц с обычными картинками? Пхп справляется с каким-то серьезными вычислениями и действиями ?
Или серьезные проекты эпрэорэ не выполняются в одно лицо и поэтому нет смысла ?
> А если надо что-то нормальное сделать, не гавно из 5 страниц с обычными картинками?
А что-то нормальное и делается на джаве, только не фрилансерами а галерами консалтинговыми компаниями, иначе не солидно.
похоже на вакансию нашей конторы, у нас все это используется
Ебануться. А на работу как попал?
HttpURLConnection connection = new url.openConnection();?
Причем на stackoverflow.com увидел инфу что второй метод плох и вообще использовать пакет com.sun.* это "фи"
Если тебе не принципиален момент «удаленки» - сходи на любую галеру твоего мухосранска и устройся на полставки, с твоими знаниями и подходом к написанию кода тебя однозначно наймут.
Двигай в андройд.
Как минимум вместо sleep нужен ScheduledThreadPoolExecutor, а в реальном проекте может быть необходимо учесть, что за эту минуту возможен рестарт сервера.
Первое - это tcp, второе - (внезапно) http. И да, этот встроенный HttpServer обычно никто не использует, http-серверы на джаве делаются иначе.
Персистить, но полезно уметь делать в общем виде - запускать какую-то задачу через заданное время Можно использовать сервисы очередей, обычно они в том или ином виде поддерживают доставку сообщений с задержкой. При небольших нагрузках также подойдет quartz scheduler, он умеет писать в обычную бд.
Понял, погуглил, прикольно
Еще как варик можно принятый энтити писать в кафку скажем, чтобы не проебался и каждый определенный промежуток времени читать кафку апдейтить сущность и писать в базу
С другой стороны поднимать ради такой задачи кафку как топором яичницу делать
На сервере
new ServerSocket("localhost", 5555);
На клиенте
new Socket(address, 5555);
Если в address локалхост, то все работает. но я вот хочу поделючиться с другого компа через вайфай. Пишу в консоль ifconfig, вижу
inet 192.168.0.70 netmask 255.255.255.0 broadcast 192.168.0.255
В address записываю "192.168.0.70", мне выдается исключение Connection refused. ЧЯДНТ?
памагити
Это копия, сохраненная 4 мая 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.