Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 675 29 177
JAVA THREAD #117 [LTS] /java/ Аноним 09/09/22 Птн 10:29:29 2458869 1
image 85Кб, 406x500
406x500
image 49Кб, 476x243
476x243
image 55Кб, 604x568
604x568
image 32Кб, 664x434
664x434
JAVA THREAD #117 [LTS]

Что такое Java?
Java - язык программирования с классами (aka объектно ориентированный), где нужно явно указывать тип объявляемых переменных (aka со строгой типизацией).
Заебись. А что ещё делает Java лучшим языком программирования?
- На Java написано столько всего, что любая твоя невообразимая идея уже существует в виде библиотеки, которую можно скочать и юзать
- Java - мультипарадигменный язык, тут можно писать в любом стиле, который тебе вздумается, даже к памяти можно получить доступ через Unsafe, но, при этом спроектирован язык для того, чтобы на нём писали в ОО-стиле.
- От прошлого пункта плавно перешли к отличной проработке языка - язык с самого начала задумывался как язык для ООП и многопоточности, благодаря чему писать чистокод на Java легче лёгкого!
- Java - относительно молодой язык, который до сих пор активно развивается жидами из Oracle, при этом почти неполживо опенсорсно.
- Java следует принципу write once во всём. Java никогда не ломает обратную совместимость - твой код, написанный на Java 1.2 будет работать на Java 18 - и не зависит от платформы, являя из себя единственный полностью кроссплатформенный язык с кроссплатформенной экосистемой (если не считать языков-паразитов на JVM).

Тред по жабе на гитхабе: https://github.com/java2ch/java-thread
Вики по вкатыванию в джаву: https://github.com/java2ch/java-thread/wiki

Предыдущий: >>2443253 (OP)
Аноним 09/09/22 Птн 10:39:30 2458879 2
Шарпы > жаба.
Жабофилы, перекрывайте.
Аноним 09/09/22 Птн 10:43:32 2458889 3
>>2458879
Ну нравится тебе сосать хуй майкрософтов, ну почему нельзя тихо сосать? Нам, адекватным господам до этого дела нет
Аноним 09/09/22 Птн 10:43:57 2458890 4
>>2458889
Почти квадрипл был блен
09/09/22 Птн 10:46:26 2458892 5
Жаба гораздо хуже, чем шарп.
А уж опхуй, перекатывающий до 1000, вообще за гранью доьра и зла.
Аноним 09/09/22 Птн 10:47:18 2458893 6
>>2458892
Просят же джентльмены, сосите в уголке и не чавкайте
09/09/22 Птн 10:50:08 2458895 7
>>2458893
Кто просит? Ты самолично принял это решение.
Аноним 09/09/22 Птн 10:52:37 2458897 8
>>2458895
Просят петушарперов не срать в жаба тредах, а не перекатывать, разумеется.
09/09/22 Птн 10:59:38 2458905 9
>>2458897
В итоге тред висит на первой странице, залётные петушарперы его видят и срут до самого бамплимита.
Аноним 09/09/22 Птн 11:17:42 2458911 10
>>2458869 (OP)
>где нужно явно указывать тип объявляемых переменных (aka со строгой типизацией)
В петухоне строгая типизация, шах и мат
Аноним 09/09/22 Птн 11:19:46 2458912 11
>>2458911
Чё? Там же можно писать говно типа

variable = new Double();
variable = "50";
variable2 = 10+variable;
Аноним 09/09/22 Птн 11:21:52 2458914 12
>>2458912
В джаве тоже можно.
Сложи инт с лонгом.
Аноним 09/09/22 Птн 12:23:14 2458956 13
>>2458914
Это называется автокастинг
09/09/22 Птн 12:30:59 2458966 14
>>2458911
Как всегда путают строгую и статическую типизацию
09/09/22 Птн 13:14:29 2458989 15
В /pr есть мочух? Пусть забанит этого перекатчика сраного
Аноним 09/09/22 Птн 13:15:16 2458991 16
Оп, ты читал книгу с первого пика? Как тебе? Я просто The Definitive Guide v2 пока даже не дочитал(7 глав прочел). Хотел сперва их обе прочитать, но тасок с кафкой еще месяца два не будет, начал другие штуки читать.
Вот думаю, когда вернусь к кафке какую дочитать?
Видел в интернете сравнение, что эффективная лучше первого издания гайда. Но второе издание на год свежее.
Аноним 09/09/22 Птн 13:27:34 2459006 17
Ява ыыы))) а тыыы пишеш нааа явеееее???? Яввааа ЯВААА
09/09/22 Птн 13:45:16 2459014 18
>>2458989
Бесполезно, правила-то формально он не нарушает.
09/09/22 Птн 14:36:51 2459036 19
Положняк треда:
ОП - петух
Кубернетес - сервер приложений
Джава - не нужна
Сишарп - топ
Аноним 09/09/22 Птн 14:39:17 2459037 20
Аноним 09/09/22 Птн 14:57:22 2459046 21
>>2458956
Это синоним понятия "слабая типизация".
Я вообще о чём: сильная-слабая это условные понятия. Так-то даже в го (петухоланге?) есть неявные касты, но он щитается сильно типизированным, как и питухон (и жаба).
А статическая-динамическая не мешает языку быть строго-нестрого типизированным, можно строго типизированный питухон иметь, а можно нестрого типизированную сишку.
Аноним 09/09/22 Птн 14:58:39 2459047 22
>>2459036
Петушарперу - не сидится в своём треде, ведь петушарп не нужный язык.
Аноним 09/09/22 Птн 16:54:16 2459099 23
>>2458869 (OP)
> 3
Даже в питухоновском джанге менее магическим код кажется
Аноним 09/09/22 Птн 16:59:50 2459105 24
Аноним 09/09/22 Птн 17:34:38 2459138 25
>>2458869 (OP)
>2
Это вы так спизженным linq хвастаетесь или че?
Аноним 09/09/22 Птн 17:39:46 2459149 26
>>2459138
Неужели у тебя говностримы ассоциируются с божественным LINQ?
Аноним 09/09/22 Птн 19:22:22 2459249 27
Аноним 09/09/22 Птн 20:42:04 2459301 28
>>2459138
Это кек из прошлого треда, когда местные ментальные диды охуели от существования ленивых вычислений и свалили это на оптимизации жвм.
Аноним 09/09/22 Птн 20:50:26 2459307 29
пока шарпист получает 300к/нс, любители мототехники получают пиздов от Кабан Кабаныча
Аноним 09/09/22 Птн 21:15:51 2459326 30
>>2459138
>>2459149
На самом деле стримы были спизжены по большей части из скалы, нежели из шарпа.
Аноним 09/09/22 Птн 21:21:07 2459331 31
>>2459046
>как и питухон
В каком месте питухон у тебя сильно типизированный?
Ты его с перлом не попутал, случайно, лол?
Аноним 09/09/22 Птн 21:23:16 2459333 32
>>2459331
>Ты его с перлом не попутал, случайно, лол?
В перле как раз полно неявных кастов, в отличие от
Аноним 09/09/22 Птн 21:23:29 2459334 33
zhatnik11825111[...].png 169Кб, 421x468
421x468
>>2459249
Да пусть перекатываю, тебе жалко?
Аноним 09/09/22 Птн 21:28:24 2459336 34
ЯВА ЯВА НЕ ДРОЖИ КАБАНЫЧ
Аноним 09/09/22 Птн 21:32:16 2459339 35
>>2459331
Нет, питухон как раз таки с сильной динамической типизацией.
А вот чистая сишка - со слабой статической.
Аноним 09/09/22 Птн 21:37:25 2459343 36
Аноним 09/09/22 Птн 21:45:41 2459345 37
ЯВУ ЯВУ ПАМЯТЬ НАХАЛЯВУ
Аноним 09/09/22 Птн 21:52:50 2459349 38
>>2459339
А почему у жабки и петухона сильная, а у сишки слабая? Какие там есть неявные кастинги, из-которых она слабая?
Аноним 09/09/22 Птн 21:58:15 2459352 39
>>2459349
>Какие там есть неявные кастинги, из-которых она слабая?

if (1337) { fuck_you(); }
Аноним 09/09/22 Птн 22:07:55 2459357 40
>>2459352
А где тут кустинг? В стандартной библиотеке си 89 просто нет булевых типов.
Аноним 09/09/22 Птн 22:09:53 2459360 41
>>2459357
>просто нет булевых типов
Можно подумать в той версии стандарта, где есть булевы типы так сделать не получится и компилятор выругается если в условие положить что угодно кроме булева.
А ещё всё есть воид поинтер и наоборот.
Аноним 09/09/22 Птн 22:14:31 2459361 42
>>2459360
Более поздние стандарты - это обратная совместимость.
А разве кустинг к войд поинтер не должен быть явным?
Аноним 09/09/22 Птн 22:16:50 2459364 43
>>2459361
>А разве кустинг к войд поинтер не должен быть явным?
Тут я немного про другое хотел сказать: в сишке помимо прочего и типизация ещё и не совсем статическая, ибо через войд поинтеры можно "терять" типы и кастовать всё во всё.
Аноним 10/09/22 Суб 06:55:07 2459488 44
>>2459343
> By Prachi D
Копирайтерский высер от индуса
Аноним 10/09/22 Суб 08:29:51 2459496 45
arrayList=()
arrayList+=("мам я долбаеб")
Аноним 10/09/22 Суб 09:03:37 2459498 46
>>2459496
Блять ты будешь еще год тот пост вспоминать?
Аноним 10/09/22 Суб 10:07:13 2459507 47
>>2459496
Не хватает такого сахарочка. Джава программы выглядели бы лучше тогда.
Аноним 10/09/22 Суб 10:49:59 2459524 48
Аноним 10/09/22 Суб 11:15:54 2459540 49
>>2459507
Да нет уж, нахуй такое не нужно.

Вот тот сахар, который есть в Groovy - это то, что надо.
И то даже, местами, лишнее.

Масса туповатых анальников не понимает простой вещи - джава - это простой язык. С простым синтаксисом. Это позволяет человеку читать его на уровне бессознательного. И это позволяет делать очень хорошие IDE, анализаторы и т.п. - инструментальная поддержка у джавы - на порядок лучше, чем у любого другого языка.
Аноним 10/09/22 Суб 13:08:34 2459580 50
>>2459540
Что может идея делать с джавой, из того что не умеет студия делать с шарпом?
Аноним 10/09/22 Суб 13:08:55 2459582 51
>>2459507
Это не сахарочек, это Bash
Аноним 10/09/22 Суб 13:57:04 2459628 52
>>2459582
Говняш.
= () можно читать как литерал пустого списка
+= () соответственно addAll
Аноним 10/09/22 Суб 16:05:36 2459742 53
>>2459496
мутабельные листы не нужны
Аноним 10/09/22 Суб 16:12:51 2459746 54
>>2459524
Ты целый гор не переставая смеёшься с одной и той же шутки? Обратись к психиатру, серьёзно.
Аноним 10/09/22 Суб 16:13:29 2459748 55
>>2459746
Он постит это раз в пару тредов, поржал и забыл на следующий месяц.
Аноним 10/09/22 Суб 16:22:58 2459752 56
>>2459748
Постит раз в пару тредов, а ржёт постоянно.
Аноним 10/09/22 Суб 16:38:22 2459755 57
>>2459746
> к психиатру
Пускай лучше на работу наконец устроится.
Аноним 10/09/22 Суб 16:44:14 2459757 58
Идея написана на джаве, а студия на чём? Есть над чем задуматься..
Аноним 10/09/22 Суб 16:54:41 2459764 59
>>2459757
Главное, о чём стоит задуматься - это тот факт, что компилятор жабы написан не на жабе.
Аноним 10/09/22 Суб 18:04:04 2459794 60
>>2459764
Хочешь сказать что это невозможно или что?
Аноним 10/09/22 Суб 18:26:05 2459806 61
>>2459764
А на чем была написана прошивка кофеварки того, кто писал компилятор С? Синк эбаут зис мэн
Аноним 10/09/22 Суб 18:29:37 2459808 62
На джава пишется бизнес логика.
Аноним 10/09/22 Суб 18:32:09 2459812 63
Аноним 10/09/22 Суб 18:46:28 2459825 64
>>2459752
Ну потому что смешно же.
Аноним 10/09/22 Суб 18:46:42 2459827 65
Подскажите бесплатный сервер, где я смогу хранить файлы .minecraft.
То есть, что бы их можно было скачать с сервера на пк через класс URL. Раньше помогал бесплатный Ucoz, но недавно оттуда стало невозможно выкачивать файлы и я хз почему :с Может хостинг кто знает бесплатный для этого ?
Аноним 10/09/22 Суб 18:50:22 2459830 66
Аноним 10/09/22 Суб 19:07:32 2459845 67
>>2458869 (OP)
Аноны, босс дал задание парсить профили на фейсбуке, я хз с чего начать. Java подойдет для этой цели?
Аноним 10/09/22 Суб 19:20:17 2459856 68
Аноним 10/09/22 Суб 19:51:15 2459875 69
>>2459856
По существу вопросов не имею, петухон это как раз язык для гнилых задач и копроработы - спам и прочие помехи людям. Только вот называть петухон надо правильно. Петухон - петухон. Питон - животное.
Аноним 10/09/22 Суб 20:16:17 2459896 70
Аноним 10/09/22 Суб 20:17:20 2459897 71
>>2459845
Подойдет что угодно в чем ты разбираешься.
Аноним 10/09/22 Суб 20:50:18 2459910 72
>>2459845
>парсить профили на фейсбуке
Python однозначно. Зачем что-либо еще, когда для парсинга питон является де факто стандартом?
На жабе конечно есть jsoup, но нахуя целую жабу для такого тащить?
Аноним 10/09/22 Суб 20:56:42 2459912 73
Аноним 10/09/22 Суб 20:59:40 2459915 74
>>2459757
>студия на чём
Сишарп + легаси параша на С++, которую они 20 лет портировали на х64.
Аноним 10/09/22 Суб 21:05:19 2459919 75
>>2459910
Я другой анон, но мне тоже хочется написать парсилки для личных нужд. Пока забивал на это дело.
Ну jsoup я немного ковырял. На жабе уже год работаю. А питон я в глаза видел раз 5, почти не знаю его синтаксис.
Мне все равно брать питон?
Аноним 10/09/22 Суб 21:10:43 2459924 76
>>2459919
Ну для личных нужд можешь на чем угодно писать, jsoup вполне позволяет это делать на жабе, никто не запрещает. Просто если делать кому-то парсер под заказ, то лучше на питухоне, просто потому что так принято.
Аноним 10/09/22 Суб 21:21:24 2459938 77
>>2459924
Ну а по функционалу у питонячих либ есть преимущества? Или все преимущество, что jvm не надо тащить?
Аноним 10/09/22 Суб 21:26:29 2459945 78
>>2459938
jsoup жабы и beautifulsoup у питона по сути одно и то же с одинаковым функционалом, jsoup - это порт bs с питона на жабу. А кроме этого я ничего не использовал, увы
Аноним 10/09/22 Суб 21:34:29 2459953 79
Аноним 10/09/22 Суб 21:36:48 2459956 80
Накидайте пожалуйста интересных библиотек (spring и hibernate не интересные).
Аноним 10/09/22 Суб 21:45:10 2459963 81
1536270154358.png 5Кб, 375x121
375x121
Аноним 10/09/22 Суб 21:48:22 2459965 82
Аноним 10/09/22 Суб 21:52:35 2459968 83
Аноним 10/09/22 Суб 21:58:28 2459972 84
Аноним 11/09/22 Вск 01:07:17 2460096 85
>>2459910
>де факто стандартом
Стандартом для парсинга является Perl.

Питон - хуита для детей.
Собственно, с этим и связана его популярность в последние годы - на нём пишут не- или недо- программисты.
Аноним 11/09/22 Вск 01:16:57 2460097 86
Аноним 11/09/22 Вск 01:35:56 2460102 87
>>2460096
Можно говорить что угодно, но перл умер, и ничего с этим не сделать. Для говноскриптов на 50 строчек для парсинга, переименовывания файлов и других подобных говнозадач надо юзать петухон или жопаскрипт, и все прекрасно обходятся без $_ =~ y/a-z/A-Z/ unless $_ m/q/;
Аноним 11/09/22 Вск 05:52:26 2460130 88
>>2458869 (OP)
Есть ли жизнь вне спринга в бэкенде?

человеческие фреймворки вобще есть?
Аноним 11/09/22 Вск 06:03:53 2460132 89
>>2460130
Каковы критерии человеческого фреймворка? Чем спринг не устраивает?
Аноним 11/09/22 Вск 08:01:50 2460140 90
>>2459912
А чем компилируется компилятор джавы?
Аноним 11/09/22 Вск 10:31:57 2460167 91
>>2460140
Компилятором джавы.
Аноним 11/09/22 Вск 10:36:02 2460170 92
>>2460130
Кваркус, микронавт, vert.x (или netty, если нужен лоулевел), javalin. Много всякого есть.
Аноним 11/09/22 Вск 11:44:34 2460193 93
Вкатуну обязательно знать grpc/кафку?
Аноним 11/09/22 Вск 14:07:36 2460309 94
image.png 34Кб, 830x187
830x187
Привет, может кто объяснить нюфагу, можно ли в запросе типо того, что на пике как-то получить ip-клиент или инфу о времени и дате запроса?
Заранее спасибо.
Аноним 11/09/22 Вск 14:09:46 2460313 95
Аноним 11/09/22 Вск 15:24:01 2460373 96
>>2460309
Если это SpringMVC - добавь в параметры метода HttpServletRequest, тебе спринг туда подсунет сервлет реквест, а потом в методе из него достань все что тебе нужно - ип, дату/время запроса, урл, хедеры - не помню точно что в нем есть, но если там чего то нет - значит этого нет нигде.

В webflux вместо HttpServletRequest - ServerWebExchange.

>>инфу о времени и дате запроса?
А еще ты можешь просто записать время вызова метода через LocalDAteTime.now() и не мучать сервлеты.
Аноним 11/09/22 Вск 15:36:24 2460383 97
Аноним 11/09/22 Вск 17:44:38 2460469 98
>>2460193
Ты так говоришь "знать", будто от тебя требуют учить два новых языка программирования и фреймворки к ним, хотя это всего лишь кафка и грпц.
Они, конечно не везде используются, в нашем легаси вместо кафки IBM MQ, а вместо grpc - SOAP.
Аноним 11/09/22 Вск 18:47:00 2460503 99
Аноним 11/09/22 Вск 20:33:47 2460557 100
Мужчины, как сделать так, чтобы оно при вводе нуля не ВЫВОДИЛО ноль? Я 10 часов сегодня учу Джаву, я устал, но пообщел себе, что пока не доделаю эту задачку - отдыхать не пойду.
class Main {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
String str = "qwerty";
int num = 0;
while (!str.equals("0")) {
str = console.nextLine();

try {
num = Integer.parseInt(str);}
catch (Exception e) {
System.out.println("Invalid user input: " + str);
}
System.out.println(num*10);
}
}
}
Аноним 11/09/22 Вск 20:41:05 2460566 101
>>2460557
сам допер, я гений Java
import java.util.Scanner;

class Main {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
String str = "qwerty";
int num = 0;
while (!str.equals("0")) {
str = console.nextLine();

try {
num = Integer.parseInt(str);
}
catch (Exception e) {
System.out.println("Invalid user input: " + str);
continue;
}
if (num != 0) {
System.out.println(num * 10);
}
}
}
}
Аноним 11/09/22 Вск 20:44:28 2460568 102
>>2460557
Не поняла, у тебя же условие цикла проверяется уже после вывода, очевидно же, что 0 выведется. Можешь переписать цикл так:
while (!str.equals("0")) {
try {
final String str = console.nextLine();
final int num = Integer.parseInt(str);
if (str.equals("0")) {
break;
}
System.out.println(num*10);
} catch (Exception e) {
System.out.println("Invalid user input: " + str);
}
}
Аноним 11/09/22 Вск 20:47:57 2460572 103
>>2460557
>пока не доделаю эту задачку - отдыхать не пойду
В этом и проблема. Если переспать, то задача решится за 5 минут.
Аноним 11/09/22 Вск 20:58:15 2460587 104
>>2460572
Всем известно что решения приходят в ванной комнате, в туалетной комнате или в спальной комнате.
Аноним 11/09/22 Вск 21:12:29 2460607 105
>>2460587
Или если ты не мам я долбаеб - то где угодно.
Аноним 11/09/22 Вск 22:07:04 2460642 106
>>2460566
>>}
>>}
>>}
>>}
ты бы уж лучше скрины кидал, а не эту нечитаемую хуйню.
Аноним 11/09/22 Вск 22:25:39 2460656 107
>>2460572
>Если переспать, то задача решится за 5 минут.
Ну, это смотря с кем переспать.
Аноним 11/09/22 Вск 22:29:13 2460657 108
Аноним 12/09/22 Пнд 00:02:13 2460695 109
>>2460568
Вот это дело.
И еще условие цикла заменить на while(true) а то фиг ли оно два раза проверяется
Аноним 12/09/22 Пнд 00:17:30 2460706 110
>>2460695
Точно, не то скопировалось.
И if (str.equals("0")) заменить на if (num == 0), чуть быстрее будет работать.
Аноним 12/09/22 Пнд 11:14:45 2460927 111
В каких случаях использовать логирование ?
В catch его пихать ?
Аноним 12/09/22 Пнд 11:17:31 2460932 112
>>2460927
Во всех, где может что-то сломаться на проде, и продебажить нельзя, но можно у саппорта запросить логи. Обычно да, catch.
Аноним 12/09/22 Пнд 11:37:18 2460953 113
>>2460927
Логирование используют только пидоры, оно портит красоту кода.
Аноним 12/09/22 Пнд 11:44:31 2460958 114
>>2460953
Какая нахуй красота кода в жабе?
Аноним 12/09/22 Пнд 11:50:51 2460967 115
>>2460932
А в методах когда что то происходит нужно писать info ? Например метод закачивает файлы, то я это логирую через info ?

>>2460953
Я пишу пет для гитхаба.
Аноним 12/09/22 Пнд 11:59:59 2460975 116
>>2460967
>Я пишу пет для гитхаба.
Тем более.
Аноним 12/09/22 Пнд 12:13:36 2460985 117
>>2460967
> А в методах когда что то происходит нужно писать info ? Например метод закачивает файлы, то я это логирую через info ?
Нужно знать меру. В этом случае имеет смысл, например, если сервер может быть недоступен, и чтобы явно сохранить, что удалось загрузить, а что не удалось.
Аноним 12/09/22 Пнд 12:18:18 2460991 118
После изучения алгоритмов и структур данных у меня сильно расширилось понимание java, но свои алгоритмы я писать не могу (или решать чужие) :с Это нормально ?
Аноним 12/09/22 Пнд 12:39:49 2461016 119
>>2460568
>поняла,
ПОШЛО НАХУЙ ТУХЛОДЫРАЯ МРАЗЬ БЛЯДЬ!
Аноним 12/09/22 Пнд 12:54:04 2461040 120
pvms
ENTER
sout
ENTER
"BAZA"
Аноним 12/09/22 Пнд 13:12:34 2461052 121
Аноним 12/09/22 Пнд 16:22:33 2461214 122
>>2458869 (OP)
> не ломает обратную совместимость
А нахуя тогда кабанчики на жабе восьмой сидят до сих пор? Просто бы обновились, лол
Аноним 12/09/22 Пнд 16:32:52 2461224 123
>>2460953
> портит красоту кода
catch туда же. Нужно использовать только throws.
Аноним 12/09/22 Пнд 16:45:33 2461238 124
>>2461224
А если я метод переопределяю и вылазит исключение ?
Аноним 12/09/22 Пнд 16:51:28 2461242 125
>>2461214
Ломает обратную совместимость, но не так сильно, как некоторые языки. Если в PHP при обновлении вообще всё сломается назуй, то в жабе можно потратить немного времени на переход с минимальными правками в коде.
Аноним 12/09/22 Пнд 17:00:01 2461249 126
>>2461224
catch нужен для борьбы с проверяемыми исключениями, чтобы оьорачивать в непроверяемые.
Аноним 12/09/22 Пнд 17:31:42 2461280 127
Аноним 12/09/22 Пнд 17:55:41 2461301 128
>>2460927

Во всех. Логируй все и везде. В продовом рантайме внятные логи --- одна из немногих опций понять, что за хуйня произошла.

Но чтобы не просадить перформанс, логируй под разными логгинг-уровнями, держа включенным по умолчанию только info. Оборачивай низкоуровневые логи (debug, trace) в проверки isDebug/TraceEnabled, чтобы не собирать лишних данных в рантайне когда debug/trace отключен.
Аноним 12/09/22 Пнд 18:16:52 2461316 129
>>2461249
>>catch нужен
не нужен
>>для борьбы с проверяемыми исключениями
@SneakyThrows
Аноним 12/09/22 Пнд 18:22:35 2461319 130
>>2461301
ПИШЕШЬ ЛОГИ НА КАЖДЫЙ ПУК
@
ПРОД УПАЛ И НЕ ПОДНИМАЕТСЯ
@
ЛЕЗЕШЬ В ЛОГИ
@
ОШИБОК НЕТ
@
3 ДНЯ ПЕРЕБИРАЕШЬ КАЖДУЮ СТРОЧКУ
@
УЖЕ ДУМАЕШЬ КАК НОВУЮ РАБОТУ ИСКАТЬ
@
СЛУЧАЙНО ЗАМЕЧАЕШЬ ОТСУТСВИЕ СВОБОДНОГО МЕСТА НА ДИСКЕ
@
БАЗА С ЛОГАМИ ПЕРЕПОЛНИЛАСЬ И УРОНИЛА ПРОД
Аноним 12/09/22 Пнд 18:23:25 2461320 131
Аноним 12/09/22 Пнд 18:25:23 2461322 132
>>2461319

Rolling policy? Не, не слыхали, ага.
Аноним 12/09/22 Пнд 18:44:09 2461337 133
>>2461319
че все от тебя одного зависело?
Аноним 12/09/22 Пнд 19:59:31 2461390 134
Аноним 12/09/22 Пнд 22:11:04 2461519 135
>>2461301
Это же пиздец сколько данных. У меня вот где-то 300к юзеров и это пиздец, дебаг логи можно включать только на короткое время, а если в нормально режиме писать мало, то логи становятся бессмысленными. Соответственно, держу включенным только info с короткими сообщениями и traceid.
А всё, что можно, сохраняю в базу, соответственно, по базе можно понять, какая сущность с какой связана и когда была обновлена, дальше уже обычно можно по коду догадаться, что пошло не так.
мимокрокодил
Аноним 12/09/22 Пнд 22:21:52 2461528 136
>>2461519
Собственно, для себя сделал такой вывод, что подробные дебаг-логи хороши только для тестов, а в бою они всё равно никогда не будут подробными, ты замаешься столько писать и, главное, хранить.
Поэтому внятная бд, которая сама своей структурой отвечает не только "что", но и "как" это чуть ли не единственное решение.

Как максимально тупой пример, если у тебя один юзер может позвать другого, то есть у тебя есть сущности юзер и реферальная ссылка, то у тебя не просто должен быть fk со ссылки на владельца, но также и у приглашённого должен быть fk на ссылку, по которой он зарегистрировался. А может даже в отдельной таблице отдельно набор ссылок, по которым он пытался зарегистрироваться, с primary key по email.
Тогда ты всегда сможешь глядя на таблицу понять, почему один Петя стал другом Васи, а не Сережи, по какой ссылке и когда это произошло. И всё это без логов.

Хотя может я и неправ, хз
Аноним 12/09/22 Пнд 22:28:51 2461535 137
>>2460927
У нас в рабочем проекте есть логи, но на них не так сильно полагаются, т.к. есть такая хуйня, как аудит операций - отдельная гигантская таблица, куда пишутся все действия пользователей, типа "Зашёл в систему и получил такую-то сессию", "Запустил отчёт", "Удалил запись", "Откатил статус". Аудит запилен в первую очередь для безопасников, хотя неплохо помогает и для исследования непонятных багов с прода, но он занимает пиздец дохуя места, около четверти всей БД. Местами ради аудита приходится класть на производительность, например, даже если работаешь только с ID, для журналирования надо вытащить по ID доп. инфу из базы лишним запросом, вроде наименования клиента.
Аноним 13/09/22 Втр 07:06:19 2461639 138
Что такое камунда? Зачем нужна? И как ей пользоваться?
Аноним 13/09/22 Втр 08:29:35 2461655 139
А сейчас можно купить intellij idea в россии? Или как её сейчас накатывают на эвм?
Аноним 13/09/22 Втр 08:46:41 2461657 140
>>2461655
купить нельзя, только бесплатно

через степик, перерегистрацию триала, ЕАР
на ютюбе гайдов полно
Аноним 13/09/22 Втр 08:49:14 2461658 141
Аноним 13/09/22 Втр 09:52:07 2461683 142
>>2458869 (OP)
> - На Java написано столько всего, что любая твоя невообразимая идея уже существует в виде библиотеки, которую можно скочать и юзать
Аналог itertools из питона есть?
Аноним 13/09/22 Втр 09:58:10 2461684 143
Аноним 13/09/22 Втр 10:40:30 2461698 144
Аноним 13/09/22 Втр 11:23:43 2461714 145
>>2461214
Кабаноиды, сэр. Кабан не понимает "кодить сложно на старом говне, общие траты в перспективе увеличиваются", кабан понимает только "РАБОТАЕТ? НАХУЙ ЧЁ ТО ТРОГАТЬ И ОБНОВЛЯТЬ??? У НАС КРИЗИС БЛЯДЬ!!!!!!!!!"
Аноним 13/09/22 Втр 13:24:03 2461796 146
2298 год. Вы лежите при смерти. К вам приходит Дьявол и предлагает сделку. Вместо смерти вы отправляетесь в элитную область ада специально для программистов. Вы будете там писать код вечно. Карьерный рост имеется, но новые должности появляются пропорционально вашему поднятию по ним. Согласны? В случае отказа ваше сознание умрёт.
Аноним 13/09/22 Втр 13:59:37 2461834 147
>>2461796
>новые должности появляются пропорционально вашему поднятию по ним
??
Аноним 13/09/22 Втр 14:01:52 2461836 148
>>2461834
Ну вот стал ты лидом, а AdINC придумали должность директора, и так далее до бесконечности.
Аноним 13/09/22 Втр 14:13:51 2461854 149
>>2461796
А я как раз нашёл последнюю ошибку в своём языке программирования.
>Сотона
Какая встреча, гражданин начальник!
Аноним 13/09/22 Втр 14:22:50 2461869 150
2022-09-1315-27[...].png 21Кб, 492x515
492x515
Друзья, поясните, пожалуйста, почему инициализация массива с помощью фор(закоменченный код) не заменяет тупую инициализацию ручками?
Аноним 13/09/22 Втр 14:32:58 2461876 151
>>2461869
Лишние операции будут выполнены. Первый код быстрее.
Аноним 13/09/22 Втр 14:41:40 2461879 152
Есть ли в JDK баги, которые стали стандартом?
Аноним 13/09/22 Втр 14:48:28 2461883 153
>>2461876
тут вопрос скорее про другое: если я меняю код с верхнего на нижний - он не компилируется
Аноним 13/09/22 Втр 14:49:22 2461884 154
>>2461883
точнее не не компилируется, не инициализируется. Массив как будто одномерный остается
Аноним 13/09/22 Втр 14:54:37 2461885 155
>>2461879
Проверяемые исключения
Стирание типов в дженериках
Аноним 13/09/22 Втр 15:00:48 2461890 156
>>2461796
> ваше сознание умрёт
Аноним 13/09/22 Втр 15:03:17 2461891 157
2022-09-1316-07[...].png 28Кб, 529x382
529x382
Еще вопрос: Задача требует от меня чтобы я создал двумерный массив с n строк и m столбцов, при этом чтобы количество столбцов для каждой строки различалось и вводилось с клавиатуры. Вроде задача простая, но код почему-то не принимает.
Аноним 13/09/22 Втр 15:03:52 2461892 158
>>2461869
Как объявлен result покажи.
Аноним 13/09/22 Втр 15:10:49 2461895 159
Аноним 13/09/22 Втр 15:12:04 2461897 160
>>2461892
Это ебучий задачник джава раш(да-да, я знаю, что он дно, я учусь не по нему, просто задачки решил порешать), тут result не надо объявлять.
Вы мне скажите - если я все норм сделал, то я погляжу правильный ответ, иногда эта херня безбожно тупит и требует КАКОГО-ТО ОПРЕДЕЛЕННОГО решения.
Аноним 13/09/22 Втр 15:15:48 2461900 161
>>2461897
> Вы мне скажите
У тебя каждую итерацию создастся j создается заново в 29 строке, поэтому все j у тебя буду 1.

>>2461891
Тут тебе даже идея подсвечивает, что ты юзаешь не тот multiArray который тебе дали, а свой.
Аноним 13/09/22 Втр 15:22:26 2461904 162
>>2461900
первое утверждение к другому скрину - понял, принял, спасибо!

По второму утверждению: а почему? Поле же паблик, то есть оно должно быть видно во всем классе
Аноним 13/09/22 Втр 15:24:25 2461905 163
Аноним 13/09/22 Втр 15:25:34 2461906 164
>>2461904
> а почему?
Область видимости гугли. Локальные переменные замещают переменные класса.
Аноним 13/09/22 Втр 15:28:36 2461909 165
2022-09-1316-33[...].png 29Кб, 665x283
665x283
Подглядел "правильное решение", зачем они используют метод parseInt? У нас же тут кругом целочисленные значения: массивы int, числа читаются int, зачем такие заморочки?
Аноним 13/09/22 Втр 15:57:43 2461933 166
>>2461909
Затем, что nextInt не учитывает перевод строки, у них на скрине числа будут читаться только после того, как юзер нажмет Enter
Аноним 13/09/22 Втр 16:12:18 2461950 167
>>2461891
>>2461909
За последние 2 года я массив использовал ... не могу вспомнить даже когда.
Есть же ArrayList, есть же StreamApi, нахуя ты это говно мамонта юзаешь?
И даже не foreeachloop или как там, i++, блядь, ну такого легаси уже нет нигде, даже 8 это уже легаси, на всех вакансиях минимум 11.
Эти знания тебе не пригодятся нигде, иди лучше про мейби, мапредус, флатмап почитай.
Аноним 13/09/22 Втр 16:18:45 2461954 168
Привет всем. На степике есть курс нтерактивной дрочки sql. Вопрос, есть что-то подобное по Stream API?
Аноним 13/09/22 Втр 16:26:25 2461960 169
>>2461954
таски решай долбаеб
Аноним 13/09/22 Втр 19:22:56 2462071 170
>>2461954
Пиздуй читать книги, сука.
Аноним 13/09/22 Втр 19:26:41 2462073 171
Аноним 13/09/22 Втр 19:26:56 2462074 172
Аноним 13/09/22 Втр 19:28:29 2462077 173
Аноним 13/09/22 Втр 20:17:47 2462125 174
>>2462074
Конечно же будет полезен. Смотри все курсы от начала до конца на 0.25 скорости!
Аноним 13/09/22 Втр 21:20:11 2462173 175
кто-нить оплачивал hyperskill после ухода жетбрейнс из рф? как это сделать можно?
Аноним 13/09/22 Втр 21:27:06 2462188 176
Как лучше организовать валидацию со сложной логикой? Например, моя дто, которая летит с фронта, содержит список элементов на добавление, причем id у них уже заранее проставлены. Требуется проверить, что элементов с такими id еще нет в бд, и что двух одинаковых айдишников нет в дто.
Просто ебануть сервис валидации, где я буду это все ручками проверять, и этот сервис вызывать в контроллере сразу после того как дто получена (или же лучше вызывать этот сервис валидации в других сервисах?)
В общем хуй знает как лучше
Аноним 13/09/22 Втр 21:33:10 2462200 177
>>2462188
Любая нетривиальная логика чуть сложнее конвертеров должна быть в сервисах. В контроллере вызываешь конвертер во внутренний объект, его передаёшь в сервис и там уже проводишь валидацию.
Аноним 13/09/22 Втр 21:47:44 2462220 178
>>2462200
То есть конвертацию DTO -> Entity нужно прямо в контроллере делать? У меня логика очень простая (делаю тестовое), дто можно напрямую в ентити сконвертить, но только если само дто корректное.
Аноним 13/09/22 Втр 21:56:47 2462227 179
>>2462220
> дто можно напрямую в ентити сконвертить, но только если само дто корректное.
Странная задача. Контроллеры должны быть тупыми и ничего не знать о правильности ввода, кроме совсем прямых случаев, к которым уж точно не относится проверка id на наличие в базе. Сервис наоборот должен быть умным, но ничего не знать о внешнем мире, в частности, не знать о существовании DTO, т.к. они могут приходить из разных видов источников, и обычно на каждый такой источник по своему набору DTO. Но если в тестовом так требуется, прилётся забить и делать как скажут.
Аноним 13/09/22 Втр 22:00:02 2462231 180
>>2462227
В моем понимании сервис обычно принимает на вход дто. Типо если мы условно хотим PersonDTO полученную в контроллере положить в таблицу БД tb_person, то мы должны эту dto отправить в сервис, в сервисе вызовется маппер/другой сервис, откуда к нам уже придет ентити и эту энтити мы кладем в БД.

То есть цепочка PersonDTO->PersonEntity->db
Какие объекты должны принимать сервисы, раз они не должны знать о существовании дто? Дополнительный слой между дто и энтити?
Аноним 13/09/22 Втр 22:09:09 2462240 181
>>2462188
Уникальность в базе - это не валидация. Делаешь или предварительно запрос к репошке в сервисе или в базе делаешь ограничение уникальности. Потом бросаешь исключение/оборачиваешь исключение драйвера базы и в адвайсе отдаешь, как 422. Я так делаю, предпочитаю через констрейнты.
А проверка уникальности внутри одной дто делается кастомным бин валидатором для дтошки. Там уже возвращаешь 400.
Аноним 13/09/22 Втр 22:10:50 2462242 182
>>2462188
>>Требуется проверить, что элементов с такими id еще нет в бд,
я б сервисе это проверял, ты все равно без запроса в бд об этом не узнаешь, а значит в контроле это тащить не надо.
>>двух одинаковых айдишников нет в дто.
ну самое банальное list.size() == Set.copyOf(list).size().
Если они там раскиданы по разным полям - ну соберешь через стримы в один, потом проверишь точно также

>>ебануть сервис валидации
там проверка в 2 строчки же - запрос в бд с ответом тру/фолс и проверка дублей.
Сервис имеет смысл пилить если там действительно какая то йоба с кучей запросов в бд и другие сервисы, свичкейсы и ифелсы. Да и то возможно методом в этом же классе обойтись можно.

Вообще для валидации можешь просто писать свои валидаторы через ConstraintValidator. Например проверку на дубли там можно сделать. А вот если там запросы в бд - только в сервисе, чтоб не размазывать логику по слоям.

>>То есть конвертацию DTO -> Entity нужно прямо в контроллере делать?
Лучше в отдельном мапере, который вызывается на уровне сервисов.
Открой для себя MapStruct, с ним все просто.
Аноним 13/09/22 Втр 22:11:30 2462244 183
>>2462231
> В моем понимании сервис обычно принимает на вход дто. Типо если мы условно хотим PersonDTO полученную в контроллере положить в таблицу БД tb_person, то мы должны эту dto отправить в сервис, в сервисе вызовется маппер/другой сервис, откуда к нам уже придет ентити и эту энтити мы кладем в БД.
Можно и так, тогда будет некий "фасадный" сервис, который будет вызываться только из контроллера, проводить первичную валидацию и конвертацию.
> Какие объекты должны принимать сервисы, раз они не должны знать о существовании дто? Дополнительный слой между дто и энтити?
Объекты никакие сервисы не принимают, есть только конвертеры, которые преобразуют DTO во внутренние объекты и наоборот.
Аноним 13/09/22 Втр 22:17:39 2462248 184
>>2462242
>MapStruct, с ним все просто
чем от моделмаппера отличается?
Аноним 13/09/22 Втр 22:29:11 2462254 185
>>2462244
>Объекты никакие сервисы не принимают
Я про то, что методы сервиса могут ДТО принимать. Разве нет? В сервисе PersonService есть метод savePerson(PersonDto personDto), который уже внутри себя вызывает маппер и сохраняет полученное ентити.
Аноним 13/09/22 Втр 22:30:40 2462255 186
>>2462248
быстрый, никакой магии кроме мб самой кодогенерации, почти всегда идут парой мавен плагины ломбок и мапструкт, легко мапить как простые так и сложные поля, в проде почти всегда он

моделмапер сам использовал когда вкатывался и петы писал, с тех пор о нем и не слышал.
Аноним 13/09/22 Втр 22:38:15 2462258 187
>>2462255
Я посмотрел и модел маппер реально магический и тормозной. Но он у меня на проекте. Правда там до прода еще хз сколько. Это плохо?
Аноним 13/09/22 Втр 22:47:13 2462265 188
>>2462258
Если сложного мапинга нет, то наверное пойдет. А когда там из дто надо достать список объектов, достать из каждого какое то поле и соединить все это в одну строку - мэпстракт куда проще будет. В нем в принципе можно что угодно в поле смапить через отдельный метод.
Аноним 13/09/22 Втр 23:39:43 2462288 189
Сел сегодня порешать немного литкод и какой же это пиздец, эти пидоры че охуели все платным делать?Ебучий автокомомплит теперь за бабки, неуебищный дизайн видимо тоже. Задачки еще по большей части какие-то конченные, самая легкая по итогу за сегодня была хардовая, а на некоторых мидловых сидел по три часа. Кто придумал эту поеботу давать решать на собесах? Как мне это задрочить, чтобы потом на собесе не обосраться? Или единственный вариант проебать еще две недели за самым унылым и бесполезным занятием в моей жизни?
Аноним 13/09/22 Втр 23:56:23 2462303 190
>>2462288
Не решай. В рф 5 компаний, которые спрашивают литкод.
А за пределы рф ты вряд ли теперь устроишься.
Аноним 14/09/22 Срд 00:09:39 2462321 191
>>2461714
>Java 8
>кодить сложно на старом говне
Ты наркоман штоле сука?
Аноним 14/09/22 Срд 00:12:17 2462322 192
>>2461884
Размерность массива должна быть константой, клоун.
Тебе IDE об этом не написала?

Хочешь подобной хуиты - делай на списках.
Или одинаковую размерность у вложенных массивов.
Аноним 14/09/22 Срд 00:14:00 2462327 193
>>2462321
В довесок в восьмой жабе всегда идёт четвёртый спринг и сервер приложений Java EE 6.
Аноним 14/09/22 Срд 00:15:18 2462332 194
>>2461950
Массив - это говно мамонта?
И код циклов надо переписывать с появлением каждого нового сахара в "новых" никому не нужных версиях?
Да ты, чувствуется, настоящий синьор.
Аноним 14/09/22 Срд 00:51:36 2462355 195
>>2462332
>>с появлением каждого нового сахара в "новых" никому не нужных версиях?
стримы вышли в 8 версии, уже 10 раз можно было все старое говно переписать.
Аноним 14/09/22 Срд 01:07:57 2462366 196
>>2462355
Чувак, стримы сами по себе ничего не улучшают.
Если у тебя в старом коде есть цикл for, то переписывать его на стрим не просто бесполезно, а даже вредно - for эффективнее.

Стримы - они не для этого.
Вся кодовая база должна быть value oriented (fp-like, если угодно), тогда в этом есть смысл.

И я имел в виду бесполезный сахар в версиях после 8.
Аноним 14/09/22 Срд 06:06:59 2462402 197
image.png 16Кб, 711x380
711x380
Ахуеть, жабе до такого еще лет 20 эволюционировать.
Аноним 14/09/22 Срд 06:24:49 2462408 198
>>2462402
В джексоне делается 1 аннотацией. Серанул с питоноребенка
Аноним 14/09/22 Срд 06:27:26 2462409 199
>>2462408
Ты хоть понял, что этот код делает?
Аноним 14/09/22 Срд 07:28:07 2462423 200
>>2462402
В скале есть похожий матчинг case classов, а вообще НИНУЖНО. Синтаксис должен оставаться простым и явным, каким его создали в НАУЧНЫХ лабораториях УЧОНЫЕ. А вот эта вот вся залупень тупо от скучающих первокуров не видавших больших ЗАЛУП. Безумцы открывают ящик пандоры.
Аноним 14/09/22 Срд 07:36:56 2462426 201
>>2462423
хаскель и лиспы вроде тоже учоные создали
Аноним 14/09/22 Срд 08:20:20 2462446 202
Аноним 14/09/22 Срд 08:39:01 2462465 203
image.png 418Кб, 1200x584
1200x584
>>2462426
джей и апл кстати тоже
Аноним 14/09/22 Срд 09:14:18 2462482 204
Товарищи программисты, изучаю это вашу джаву(сам, читаю книжки, смотрю курсы и решаю задачки), и начинаю уже тихонько изучать перспективы трудоустройства, и насколько понимаю для джунов сейчас полнейшая и тотальнейшая жопа.

Я понял, что выходить на рынок вакансий надо будет с парой готовых проектов. У меня уже есть идеи, так как окунувшись в ИТ я понял какие задачи мои(занимаюсь предпринимательством в данный момент) оно может решать.
Идеи такие: интернет магаз с небольшой номенклатурой(буквально 15-20 позиций), с оплатой на сайте, с доставкой всякими сдэками, с админкой, чтобы можно было легко вносить изменения в позиции(цены, фотки, описание).
Вторая идея: приложение(или просто сайт) с предзаказом в фастфудной. Типа тоже регаешься, выбираешь позиции, указываешь время и т.д.
Вопрос: насколько широко я раскрыл ебало? не треснет? в одного можно такие проекты потянуть в какие-то адекватные сроки? Ясен пень что визуал будет максимально шаблонный и простой, фронт я не изучаю, особо и не планирую.
Аноним 14/09/22 Срд 09:20:51 2462484 205
>>2462482
>окунувшись в ИТ я понял какие задачи мои(занимаюсь >предпринимательством в данный момент) оно может решать.
хуево выразился, я и так знал, какие задачи оно может решать, правильнее будет выразиться так - я задумался, а смогу ли я сам решить свои текущие задачи? И опять же я понимаю - что эти задачи должны решать спецы за деньги, так вот я сам хочу стать таким спецом и решать чужие подобные задачи за деньги.
Аноним 14/09/22 Срд 09:23:28 2462485 206
>>2462482
> Я понял, что выходить на рынок вакансий надо будет с парой готовых проектов.
Нет.
Аноним 14/09/22 Срд 09:28:12 2462490 207
>>2462485
пидора ответ
извини, пожалуйста, не удержался
Аноним 14/09/22 Срд 09:31:18 2462491 208
>>2462490
- Алло, это число pi?
- Да
- Рас
😂😂😂🔥
Аноним 14/09/22 Срд 09:34:06 2462493 209
1422429568-0b45[...].jpg 253Кб, 1329x972
1329x972
Аноним 14/09/22 Срд 10:12:05 2462524 210
>>2458869 (OP)
Тупые вопросы от вкатуна по спрингу:

- Правильно ли я понимаю, что все контроллеры должны сами себя мапить на конкретные юрл? Не нашел способа задать какой то аналог роутера, который бы каждому пути, какой то контроллер сопостовлял. аналог джанговского urlpatterns

- Как написать хэндл который бы имел доступ и к реквесту и респонсу? Хочу написать что то вроде такого: func handle(request) -> responce
Аноним 14/09/22 Срд 10:14:39 2462527 211
>>2462524
Потыкай сервлеты, тебе понравится.
Аноним 14/09/22 Срд 11:15:44 2462573 212
>>2462321
Реально же сложно. Половины удобных функций нет в 8 жабе.
Аноним 14/09/22 Срд 11:34:02 2462588 213
Аноним 14/09/22 Срд 11:39:35 2462596 214
Чому в отусе так ахуенно объясняют? Смотрю тот знаменитый слитый курс от отуса по спрингу - бля так подробно нигде нет - ни в книгах, ни в других курсах, разве что в доке подробнее но рот ее я ебал читать. Бля отус ахуенен кто еще смотрел тот курс - хуяните свои отзывы, интересно послушать, потому что я пока что еще первую часть заканчиваю
Аноним 14/09/22 Срд 12:03:00 2462619 215
Приветствую, аноны. Появилось несколько вопросов, мб кто на опыте здесь сможет пояснить малышу за жизнь.
1) Может кто-нибудь пояснить за spring cloud? Зачем он нужен, если есть kafka - для общения между микросервисами? Единственное, что заценил - это OpenFeign в вопросе реализации клиентов для стороннего api вместо использования RestTemplate - ов и прочего говнища. Как часто используется на практике?
2) Кто-нибудь может пояснить за необходимость знать Spring Integration и Spring Batch? Spring Integration, насколько я понял, связан с реализацией каких - то EIP паттернов разработки, которые какой-то шиз в своей книжке в 2003 году описал. Насколько важно это всё знать, какова вероятность применения на практике?
3) Какой должен быть уровень знания брокеров сообщений? Допустим, я умею поднять zookeeper и kafka с дефолтными настройками, и через них с дефолтными конфигами пересылать сообщения из одного микросервиса в другой, используя KafkaTemplate на Producer - е и KafkaListener на Consumer-е, думаю, что этих знаний очень мало. Насколько важно знать тонкости настройки Kafka и прочих брокеров?
4) Spring Security - знаю базу. Нужно ли Oauth2 учить?
5) Spring WebFlux, RSocket и тд - надо?
6) Docker. Умею писать ручками Dockerfile для приложения, свзязать его с какой-нибудь бд - шкой с помощью Dockercompose и поднять локально в контейнерах. Что еще нужно?
7) Kubernetes - выглядит как лютый ад, почему то при первом же знакомстве с первого взляда появилась неприязнь. Стоит ли изучать, или понадеяться, что придет девопсер и мне ни разу не придется прикасаться к подобным делам?
8) Jenkins - дело девопса?
Аноним 14/09/22 Срд 12:06:21 2462620 216
>>2462619
> 1) Может кто-нибудь пояснить за spring cloud? Зачем он нужен, если есть kafka - для общения между микросервисами? Единственное, что заценил - это OpenFeign в вопросе реализации клиентов для стороннего api вместо использования RestTemplate - ов и прочего говнища. Как часто используется на практике?
Не используется.
> 2) Кто-нибудь может пояснить за необходимость знать Spring Integration и Spring Batch? Spring Integration, насколько я понял, связан с реализацией каких - то EIP паттернов разработки, которые какой-то шиз в своей книжке в 2003 году описал. Насколько важно это всё знать, какова вероятность применения на практике?
Не нужно.
> 3) Какой должен быть уровень знания брокеров сообщений? Допустим, я умею поднять zookeeper и kafka с дефолтными настройками, и через них с дефолтными конфигами пересылать сообщения из одного микросервиса в другой, используя KafkaTemplate на Producer - е и KafkaListener на Consumer-е, думаю, что этих знаний очень мало. Насколько важно знать тонкости настройки Kafka и прочих брокеров?
В принципе, хватит.
> 4) Spring Security - знаю базу. Нужно ли Oauth2 учить?
Полезно будет. Но учить не надо - в пете юзай.
> 5) Spring WebFlux, RSocket и тд - надо?
Вебфлюкс интересно, рсокет в пизду.
> 6) Docker. Умею писать ручками Dockerfile для приложения, свзязать его с какой-нибудь бд - шкой с помощью Dockercompose и поднять локально в контейнерах. Что еще нужно?
Пет-проект какой нибудь, крутящийся в докере.
> 7) Kubernetes - выглядит как лютый ад, почему то при первом же знакомстве с первого взляда появилась неприязнь. Стоит ли изучать, или понадеяться, что придет девопсер и мне ни разу не придется прикасаться к подобным делам?
Правильно. Нахуй его.
8) Jenkins - дело девопса?
Не, это прикольная штука. И не особо гемор.
Аноним 14/09/22 Срд 12:07:58 2462621 217
>>2462596
Ни разу не слушал курсы и, если честно, и даже немного их презираю, тк учился всему сам лет 10 назад, когда никаких курсов не было.
Конкретно с отусом сталкивался только на хабре и там из всех корпоративных блогов у них самый уёбищный, они переводят и выкладывают кучу "статей", которые и helloworld'ами-то назвать стыдно. У меня в дипломе воды было меньше, чем у них. Позорище.

К слову, недавно попросили посоветовать какой-нибудь курс одному чуваку, который хотел вкатиться, и я посмотрел/посравнивал все эти яндекс практикумы, скиллбоксы, скиллфекторе, хекслеты и иже с ним. Ты не поверишь, какая там херь, научиться программировать по таким курсам невозможно.
Аноним 14/09/22 Срд 12:13:32 2462624 218
Поясните за многопоточность/асинк в джаве. Как я понял, джава обрабатывает каждый запрос в отдельном треде и никакого эвент лупа внутри тредов нет. Получается, что если я пришлю тяжелых запросов по числу тредов/воркеров, то ваш сервер тупо встанет? Если так, то ваша джава от пыхи отличается только тем, что в пыха выделяет на каждый запрос не процессы, а треды. А концептуально, шо то лочится на io, шо это. Ну и в джаве память шарится, гц много разных, джит лучше, но это детали уже.
Выходит, что нода или го сильно современнее под капотом.
Аноним 14/09/22 Срд 12:14:08 2462625 219
>>2462620
А какой тогда вообще стек маст хэв сегодняшнего бэкенд разраба на жабе?
Аноним 14/09/22 Срд 12:15:25 2462629 220
Аноним 14/09/22 Срд 12:17:39 2462630 221
>>2462625
Читай шапку, блядь!
Аноним 14/09/22 Срд 12:19:38 2462632 222
>>2462619
> 7) Kubernetes - выглядит как лютый ад, почему то при первом же знакомстве с первого взляда появилась неприязнь. Стоит ли изучать, или понадеяться, что придет девопсер и мне ни разу не придется прикасаться к подобным делам?
И да, и нет. Кубернетес это прям операционная система для распределенных приложений и если у тебя больше одного сервиса, то с ним становится удобнее.
Всерьёз изучать его внутрянку не нужно, а вот как пользователь лучше ознакомиться, рано или поздно всё равно столкнёшься, много где разработчики сами себе описывают сервисы в кубах, а девопсы занимаются администрированием самого кубернетеса изнутри.

Да и в целом оно довольно удобно, когда научишься. Описываешь в ямлике какой-нибудь деплоймент: возьми такой-то контейнер, выдай ему столько-то памяти, смапь ему вот такой вот конфиг и запусти на таком-то порту и просто скармливаешь этот ямлик кубам и там всё само происходит. С точки зрения клиента от docker compose оно отличается большим количеством свистелок и инструментов. да собственно docker compose легким движением руки подхватывается docker swarm, становясь вполне себе альтернативой кубернетесу. если сворм жив ещё, конечно
Аноним 14/09/22 Срд 12:21:59 2462635 223
>>2462629
Блять, http-запросы, рпс, сигналы, джобы или сообщения из очереди, не важно. Можем назвать это "вызовами", если тебе так легче.
Аноним 14/09/22 Срд 12:22:02 2462636 224
image.png 5Кб, 379x47
379x47
>>2462620
>spring cloud
>Не используется
Ебало представили?
Аноним 14/09/22 Срд 12:23:16 2462637 225
>>2462636
Так эти вакансии ебанутые бабки составляют. Гуглят "java" и все слова, что на английском в выдаче будут добавляют в список требований.
Аноним 14/09/22 Срд 12:24:32 2462639 226
>>2462635
Этого всего нет в стандартной библиотеке, долбоёб. И зависти реализация только от реализации сторонней библиотеки.
Аноним 14/09/22 Срд 12:32:41 2462647 227
>>2462639
Ты дурачок что ли, я спрашиваю про сам джавовый рантайм. Так как до релиза loom он вообще не умеет в виртуальные треды, это не может не накладывать соответствующие ограничения. Я верю, что могут существовать фрейморки, с самописным event loop и промисами, но поскольку всего этого в стдлиб нет, то в итоге использовав такую хуйню ты не сможешь использовать большую часть экосистемы.

А теперь сравни это с го, где всё это есть просто в ядре языка и вообще весь существующий код на го написан с поддержкой асинхронности. Да что там, сам гошный рантайм умеет насильно, в режиме вытесняющей многозадачности, менять контекст исполнения, чтобы одна горутина не могла надолго залочить испольнение остальных.
Аноним 14/09/22 Срд 12:39:13 2462654 228
>>2462647
> то в итоге использовав такую хуйню ты не сможешь использовать большую часть экосистемы.
Че ты несёшь вообще?
Аноним 14/09/22 Срд 12:40:57 2462656 229
>>2462654
Всё понятно, этот даун закончился. Можно мне другого собеседника?
Аноним 14/09/22 Срд 13:10:01 2462686 230
Пока вы свою жабу дрочите, красноглазики омежки, успешные пацаны баб трахают и бизнес мутят. Ебальники свои представили, чмошки?
Аноним 14/09/22 Срд 13:40:08 2462709 231
>>2462332
А где в моём посте что-то про "переписывать"?)
Новый то код уж можно писать с сахарком.
Аноним 14/09/22 Срд 13:55:18 2462719 232
>>2462656
Я тоже не понял, что ты имеешь в виду

мимо
Аноним 14/09/22 Срд 14:03:26 2462726 233
>>2462624
>Как я понял, джава обрабатывает каждый запрос
Да, язык обрабатывает запросы. И вот эти люди сравнивают что-то там "под капотом". Представьте лицо этого субъекта, когда он обнаружит существование таких невероятных технологий, как неблокирующие контроллеры.
Аноним 14/09/22 Срд 14:21:41 2462736 234
>>2462647
Так как вся реактивщина написана на отдельных от стандартной либы библиотеках - весь реактивный стек это отдельная экосистема - и хттп и драйвера к базам и ормы и клиенты очередей сообщений и куча другого обвеса.
А в ноде и гошке асинхронное апи не отделено от синхронного? Если оно и там отделено, то какая разница в стандартной библиотеке реализованы эвент залупы или в отдельных библиотеках?
Аноним 14/09/22 Срд 14:40:54 2462754 235
>>2462736
Как ты не поймешь, ну вот важно человеку не методы на промисах вызывать, а await писать перед ними. У него от этого, может, ощущение причастности к самым модным веяниям возникает.
Аноним 14/09/22 Срд 15:25:28 2462808 236
Добрый день, Сычёв. Мы зададим несколько вопросов, чтобы проверить ваш уровень компетенции. Вы не можете пользоваться гуглом или проверять в IDE.

int number = 5 + 5 * 5;

Чему будет равно значение number?
Аноним 14/09/22 Срд 15:28:23 2462809 237
>>2462808
Какие иксы к зепке я могу получить за правильный ответ?
Аноним 14/09/22 Срд 15:46:04 2462833 238
>>2462808
Лучше спросить вот это:
int number = 5; i = ++i + ++i;
Аноним 14/09/22 Срд 15:51:14 2462840 239
Аноним 14/09/22 Срд 15:54:06 2462848 240
Аноним 14/09/22 Срд 16:12:48 2462864 241
>>2462833
>>int number = 5; i = ++i + ++i;
>>Чему будет равно значение number?
5
Аноним 14/09/22 Срд 16:16:41 2462866 242
>>2462864
Так, этот проходит на следующий этап собеседования
Аноним 14/09/22 Срд 16:19:06 2462869 243
>>2462866
Нет, не проходит, потому что я анальник с комплексом неполноценности, он охуел что ли решать не так, как я сказал? Выёбистый дохуя чтобы проходить дальше
Аноним 14/09/22 Срд 16:29:12 2462875 244
В реальном продакшене обязательно чтобы доступ к полям объекта извне был через геттеры и сеттеры? Если напрямую напишешь object.field, это же косяк?
Аноним 14/09/22 Срд 16:30:06 2462876 245
Аноним 14/09/22 Срд 16:34:26 2462879 246
>>2462647
Разговор двух первокуров.
Аноним 14/09/22 Срд 16:35:54 2462880 247
>>2462875
Лобок для кого придумали? И сеттеры антипаттерн, за него в хороших компаниях пиздят не менее, чем за публик поля.
Аноним 14/09/22 Срд 16:53:05 2462900 248
>>2462880
> сеттеры антипаттерн
Ахуел, тварь? Кинул тебе репорт ПИДАРАС СУКА МРАЗЬ БЛЯДЬ
Аноним 14/09/22 Срд 17:09:25 2462910 249
>>2462880
>Лобок для кого
Че это такое?
Аноним 14/09/22 Срд 17:15:26 2462913 250
Аноним 14/09/22 Срд 17:26:06 2462921 251
Как удалить картинку из фрейма ?
Аноним 14/09/22 Срд 17:26:41 2462922 252
Аноним 14/09/22 Срд 17:47:56 2462941 253
Аноним 14/09/22 Срд 18:00:59 2462952 254
>>2462875

Единственное преимущество геттеров-сеттеров над прямым доступом к полям --- то, что оные являются частю JavaBean конвеншена, на котором построена вся экосистема джавы. В остальном это ебанистика. Но ебанистика намертво устоявшаяся, к сожалению.
Аноним 14/09/22 Срд 18:20:48 2462969 255
>>2462624

>Выходит, что нода или го сильно современнее под капотом.

Это --- ложная дихотомия. Позиксные треды и зеленые потоки --- разные штуки для разных задач, одно другое не взаимозаменяет, а взаимодополняет.

Но вообще это довольно рофельная история, на мой взгляд. На заре времен джава поддерживала многопоточность, а нода --- нет. Причем первая была в поддержке многопоточности настолько охуенна для своего времени, что идея Java Memory Modelи в том или ином виде начала перекочевывать в другие экосистемы. В однопоточной ноде же тем временем без позиксных потоков было грустно, поэтому эволюция ноды сразу пошла в сторону асинхронности. Тупо от безнадеги. Сначала это был колбэк хелл, потом придумали промисы, и понеслась.

Тем временем сервисы становились все более высоконагруженны, так как количество сычей в интернетах росло, и внезапно выяснилось, что скейлиться потоками --- довольно затратно. С каждым новым потоком растет потребление процессорного времени на их скедулинг. Асинхронность была выходом из этой ситуации, но до изобретения всяких языковых штук типа async/await и корутин кодить асинхронно было лютым геморроем в плане кодинга и дебага. Поэтому когда такие языковые фишки появились --- они выстрелили.

На данный момент джава отстает по языковым средствам. Project loom в будущем призван закрыть эту проблему. Но это не значит что сейчас асинхронности в джаве нет ни в каком виде, и проблема переполнения тредпула запросов в ней неизбежна.
Аноним 14/09/22 Срд 18:30:19 2462977 256
>>2462880
> И сеттеры антипаттерн
Поясни. Разве в Джаве есть фокус на иммьютабл объектах?
Аноним 14/09/22 Срд 18:34:59 2462984 257
Как сделать цветное логирование slf4j-log4j2 ? Что бы буквы и цифры были цветными в консолэ.
Аноним 14/09/22 Срд 18:35:27 2462988 258
Аноним 14/09/22 Срд 18:43:16 2462995 259
Аноним 14/09/22 Срд 18:43:49 2462997 260
>>2462952
дВачУю=))) брАтуха ООП для терпил ссаных я на С тут написал 200к строчек кода у меня все работает епты бля!
Аноним 14/09/22 Срд 18:48:24 2463004 261
>>2462997

Так чел, без сарказма --- дтоха с геттерами и сеттерами это и есть полотно говнокода, по сравнению с простой компактной структурой. Ладно хоть ломбок с рекордами изобрели.
Аноним 14/09/22 Срд 18:55:27 2463014 262
>>2462995
Что бы ошибки в консоле красным были помечены
Аноним 14/09/22 Срд 18:56:36 2463015 263
>>2463014
Ты с нуля что-то пишешь что ли?
Аноним 14/09/22 Срд 19:07:42 2463025 264
>>2462977
Ну во первых да, а во вторых сеттеры сами по себе ублюдское днище ебаное. Если делаешь модельки, то всегда лучше поставить визеры вместо сеттеров через @With, а если пишешь что-то в настоящем ОО-стиле, то там в принципе и впихнуть сеттеры будет некуда, они будут бесполезными.
Аноним 14/09/22 Срд 19:12:48 2463029 265
>>2463004
> Ладно хоть ломбок с рекордами изобрели.
Всё так, но котлин.
Аноним 14/09/22 Срд 19:16:09 2463033 266
>>2463014
Логи читают через ELK, то что в консоль выводится это баловство.
Аноним 14/09/22 Срд 19:19:46 2463034 267
>>2462952
> к сожалению
Читай про генерацию и назначение прокси классов, а потом свою хуйню еще раз прочти.
Аноним 14/09/22 Срд 19:37:44 2463038 268
>>2462736
Да отделено, конечно.

> Так как вся реактивщина написана на отдельных от стандартной либы библиотеках - весь реактивный стек это отдельная экосистема
Я именно это и имел ввиду. Так как апи джавы по умолчанию не асинхронные, то получается, что я не могу взять рандомную либу и заюзать, получается, что мой выбор ограничен. Или возможно существуют какие-то офигенные либы, которые написаны сугубо синхронно и поэтому опять же не подойдут. В отличие языков, где всё асинхронно сразу по умолчанию.

Так то в любом языке хоть пхп можно написать свой эвент луп, свои промисы и свои системные апи и потом писать неблокирующийся код. Только от этого сам язык и экосистема асинхронными не станут.

>>2462719
Надеюсь теперь понял.
Аноним 14/09/22 Срд 19:40:01 2463039 269
>>2462969
Грамотный ответ, спасибо. Если бы ты ещё раскрыл
> Но это не значит что сейчас асинхронности в джаве нет ни в каком виде, и проблема переполнения тредпула запросов в ней неизбежна.
цены бы ему не было
Аноним 14/09/22 Срд 19:46:51 2463041 270
>>2463034

Аргумент с проксей работает лишь в защиту сложившейся экосистемы, где всякие ОРМы подвязываются на ентити чтобы обслуживать коллекции-связи и прочие lazy-поля. Что я и признал выше --- сложившийся статус кво это единственное что оправдывает геттеры-сеттеры. Но так уж вышло что на ОРМы мне давно похуй, а сам в клиентском коде я проксированием дтох никогда заниматься не стану --- навешивание аспектов на геттеры-сеттеры ИМХО полная залупа.

Так что не убедил.
Аноним 14/09/22 Срд 19:50:22 2463043 271
Аноним 14/09/22 Срд 19:52:54 2463045 272
>>2463039

>Если бы ты ещё раскрыл

Ну, есть projectreactor, есть webflux. Есть nio, есть r2dbc, из того что навскидку вспомнил. Чай никто ж тебя не заставляет в 2022м блокироваться на вводе-выводе и засирать тредпул. Не так круто конечно как корутины в котлине, но лучше чем вообще ничего.
Аноним 14/09/22 Срд 19:55:49 2463047 273
>>2463041
> на ОРМы мне давно похуй
Ну так бы сразу и сказал что тебе не нужно.
Аноним 14/09/22 Срд 20:02:22 2463050 274
Нужно ли знать, как создается обоссанный бин? И нахуй это знать, если я никогда в жизни не буду использовать на проде постбинхуинхуицессоры авэйр хуэйр интерфейсы и прочий выдроченный кал?
Аноним 14/09/22 Срд 20:03:33 2463052 275
>>2463050
Будешь. Как и несколько контекстов.
Аноним 14/09/22 Срд 20:05:32 2463053 276
Spring тяжел для понимания и изучения?
Аноним 14/09/22 Срд 20:06:07 2463055 277
>>2463052
Ты ебанулся? Я уверен, в 100 процентах ентерпрайза будет круд хуерга с вкраплениями какой - то бизнес логики. Все постбин процессоры - это извращения и если челикс не может написать без них - он конченный уебан. Фэктс
Аноним 14/09/22 Срд 20:13:19 2463059 278
>>2463055
Ты ещё не видел энтерпрайз.
Аноним 14/09/22 Срд 20:15:02 2463061 279
>>2463059
А ты, тролляка, видел? Два контекста блять ахаххахах
Аноним 14/09/22 Срд 20:29:22 2463071 280
>>2463061
Можешь ещё над несколькими датасорсами поржать.
Аноним 14/09/22 Срд 20:30:24 2463072 281
>>2463038
>Или возможно существуют какие-то офигенные либы, которые написаны сугубо синхронно и поэтому опять же не подойдут. В отличие языков, где всё асинхронно сразу по умолчанию.
Так а пример можно, какой тип библиотек тебе может быть недоступен?
Да и в языках, где синхронное и асинхронное апи есть в стандартной либе тебе никто не гарантирует, что все сторонние либы будут использовать оба подхода. Это в любом случае двойная работа.
Аноним 14/09/22 Срд 20:34:35 2463075 282
>>2463039
>Если бы ты ещё раскрыл
netty начал разрабатываться в 2004 - еще до появления ноды и го. А в 2011 уже был вполне продакшн-реади.
Аноним 14/09/22 Срд 20:35:38 2463076 283
так это,вебсокеты есть?
Аноним 14/09/22 Срд 20:36:23 2463077 284
Аноним 14/09/22 Срд 20:38:00 2463078 285
>>2463077
хорошо переваривает множество юзеров?
Аноним 14/09/22 Срд 21:42:27 2463111 286
ОП пишет:
Java никогда не ломает обратную совместимость - твой код, написанный на Java 1.2 будет работать на Java 18 - и не зависит от платформы, являя из себя единственный полностью кроссплатформенный язык с кроссплатформенной экосистемой (если не считать языков-паразитов на JVM).

А почему-то блядский Дженкинс хочет Джаву 1.8.
У автотестеров Джава 11 в Селениумах - потолок.
И только у разрабов Спринг позволяет использовать Джаву 18.

Второе:
Заебало, что мавен не может нормально в жирные jar-ники. Делает всегда кусками и без манифеста.

Хоть Градл умеет сразу.

А в Андроид студии пошли ещё дальше - там сразу и манифест есть и Градл настроен.


Так что насчёт совместимости, сомневаюсь. Пусть автор сам радуется, что игрушка для кнопочных телефонов на java 1.2 ME откроется в IDE и ещё можно запустить. Но толку?
Аноним 14/09/22 Срд 21:47:47 2463116 287
>>2463072
> Так а пример можно, какой тип библиотек тебе может быть недоступен?
Ну к примеру, какой-нибудь клиент будет блокироваться, ожидая ответа апи, веб или системного, не важно.
> Да и в языках, где синхронное и асинхронное апи есть в стандартной либе тебе никто не гарантирует, что все сторонние либы будут использовать оба подхода. Это в любом случае двойная работа.
В таких языках как правило все либы пишутся сразу с поддержкой асинхронщины, потому что асинхронный код превращается в синхронный очень легко, в отличие от обратного.
Аноним 14/09/22 Срд 21:57:35 2463124 288
>>2463111
> ОП пишет
ОП пиздит. Он вообще редкостный долбоёб, высрал говношапку вместо нормальной и перекатывает после 500.
Джава даже теоретически не сохраняет обратную совместимость. Например, в 8 жабе можно создать класс с названием var (похуй, что нейминг не соответствует соглашению), а в 11 уже нельзя. Но это не так важно, куда важнее то, что создатели стороннего софта часто лезут в недокументированные кишки жабы через рефлексию, а потом, когда детали реализации ломаются, все жидко обсираются.
> блядский Дженкинс хочет Джаву 1.8
У нас недавно его перевели на 11, видимо, он может с ней работать, но переход не бесшовный.
> мавен
Говно, но стандарт индустрии.
Аноним 14/09/22 Срд 22:23:41 2463139 289
>>2463111
>>Java никогда не ломает обратную совместимость
Не то чтобы совсем не ломает, но с вероятностью 90% все запустится сразу или после мелких правок.
>>Дженкинс
>>Спринг
Это уже на усмотрение создателей либы, фреймворка. Они могут требовать жаву 8u341 и слать нахуй все остальные версии.
А делают ограничение для 8/11 из за использования новых фич джавы - стримов, комплитабл фучер и тп. Делать несколько реализаций (и главное тестировать их) накладно поэтому проще сразу сказать что те 10% что сидят на старой джаве не могут тянуть новые либы (а им похуй - у них и старые либы отлично работают)
>>А в Андроид
Там у них своя атмосфера. И свой тред.
Аноним 14/09/22 Срд 22:29:58 2463144 290
>>2463124
>>создатели стороннего софта часто лезут в недокументированные кишки жабы через рефлексию
Что то такое проворачивает вроде только ломбок с его @SneakyThrows, все остальные популярные либы такими хаками после 9 версии уже не пользуются.
Аноним 14/09/22 Срд 22:34:06 2463148 291
>>2463111
>игрушка для кнопочных телефонов на java 1.2 ME откроется в IDE и ещё можно запустить
Как раз таки java me и всякие java card, java embedded давным давно вымерли, и ты их уже не запустишь.

>>2463111
>А почему-то блядский Дженкинс хочет Джаву 1.8.
>У автотестеров Джава 11 в Селениумах - потолок.
>И только у разрабов Спринг позволяет использовать Джаву 18.

Это проблема разработчиков библиотек, а не самой джавы. Код, написанный и скомпилированный для Java SE в 2002 году запустится и в 2022, но только если ты не будешь лезть через рефлексию во всякие ансейфы, кишки jdk итд. Возможно будут большие проблемы со свингом, например часть функционала просто не поддерживается в wayland, вроде того же java.awt.Robot с его фишками вроде снятия скриншота и перемещения курсора мыши, и в данный момент разработчики жабы пилят какие-то костыли. Ну и по мелочи - в том же гноме трея как раньше уже нет без дополнительного предолинга, поэтому свинг жидко обсирается при попытке свернуть в трей.

>>2463111
>мавен
Мавен старая хуйня на самом деле. Он в 2004 году появился, так что ты от него много хочешь. Но вообще плагины решают проблему fat jar так-то. Да, нагромождение xml, но это собрать все в один джарник любой вкатун сможет по гайдам из мурзилок.
Аноним 14/09/22 Срд 22:37:48 2463152 292
>>2463144
Лобок работает при компиляции, ему и не нужно никуда лезть, рантайм ведь ничего про проверяемые эксепшены не знает, это тупо проверка в самом компиляторе жабы.
А вот блядские сервера приложений, которые запускаются на 8 и падают с NPE на 11, эти хаки очень даже практикуют.
Аноним 14/09/22 Срд 22:38:36 2463153 293
>>2463144

Весь лобок --- один сплошной хак. Он юзает annotation processor api (который обычно используется для кодогенерации на основе аннотаций). Но прикол в том, что этот api оригинально не дает возможность менять сорцы, AST-дерево, доступное через него, неизменяемо. Лобок же ректально получает доступ к мутабельной версии AST, и ее уже меняет. Верх инженерной мысли, вобщем.
Аноним 14/09/22 Срд 22:40:25 2463156 294
>>2463152
>блядские сервера приложений
А нахуй они нужны в 2022 году? Они умерли вместе с Java EE. Вся эта срань в виде глассфиша, вебсферы, jboss, итд это натурально середина нулевых годов.
Сейчас все упаковывается в джарник и закидывается в докер контейнер.
Аноним 14/09/22 Срд 23:04:56 2463173 295
>>2463156
Мы вот с вебсферы и четвёртого спринга слезть не можем до сих пор, и это у нас ещё не самое старьё, до сих пор используются и дорабатываются смежные системы, написанные на хранимых процедурах. Слезли бы давно, сверху давят и ставят сроки по отказу от старья, но даже обновление софта на следующую минорную версию всегда что-то ломает.
А вообще, кубернетес - это зумерский сервер приложений.
Аноним 14/09/22 Срд 23:24:21 2463187 296
>>2459036
Давай начнем с того, что ты написал на своём До-диезе.
Аноним 15/09/22 Чтв 04:21:47 2463266 297
>>2458869 (OP)
> где нужно явно указывать тип объявляемых переменных
Нинужна есть var, ясно тред нубасов, это собственно из пика с кококонтроллером понятно
Аноним 15/09/22 Чтв 07:19:47 2463283 298
Аноним 15/09/22 Чтв 09:13:37 2463305 299
>>2463153
Вывод: разработчикам javac надо просто дать доступ к ast для плагинов, как этол сделано в груви, и поменьше выебываться.
Аноним 15/09/22 Чтв 09:14:54 2463307 300
>>2463283
Что не так? JavaEE умер, да здравствует JakartaEE.
Аноним 15/09/22 Чтв 09:19:04 2463309 301
WEB.XML
@
EJB-JAR.XML
@
SERVER-CONFIG.WSDD
@
BINDINGS.XML
@
PERSISTENCE.XML
Аноним 15/09/22 Чтв 11:55:15 2463378 302
>>2463307
Loom ждет та же судьба.
Аноним 15/09/22 Чтв 12:01:21 2463380 303
>>2463378
Лум умереть не может, это часть java se.
Аноним 15/09/22 Чтв 14:07:50 2463449 304
когда там уже лум? надоело ждать...
Аноним 15/09/22 Чтв 14:21:50 2463464 305
Аноним 15/09/22 Чтв 14:24:05 2463467 306
Мужики. Тут хуйня вопрос.

Надо через регулярные выражения посчитать кол-во скобок ( и ) и потом сравнить их.

Остальную хуйню я сделал а вот с этим проблема.
Аноним 15/09/22 Чтв 14:25:53 2463470 307
>>2463047

Но даже если б было нужно: как бы щас проксе есть альтернатива в виде вархендлов, можно в теории было бы подцепиться через них напрямую к публичным пропертям, без геттеров-сеттеров.
Аноним 15/09/22 Чтв 14:31:49 2463477 308
>>2463467
Обязательно прям регулярками? Это как забивать гвозди микроскопом.
Ты можешь тупо пройтись по строке и сравнивать каждый символ с символом олной из скобок, если совпадают, увеличивать счётчик.
Корректность расстановки скобок регулярками ты не проверишь никак, принципиально, доказано.
Аноним 15/09/22 Чтв 14:36:14 2463481 309
>>2463467
>Надо через регулярные выражения посчитать кол-во скобок ( и ) и потом сравнить их.
Не надо.
Аноним 15/09/22 Чтв 15:03:03 2463489 310
>>2463467

Так а че там считать то? Сначала паттерн-матчишь по ([\(]), потом паттерн матчишь по ([\)]), считаешь количество найденных групп и сравниваешь.
Аноним 15/09/22 Чтв 15:53:28 2463541 311
>>2463449
Через 5 лет будет перенос
Аноним 15/09/22 Чтв 16:50:22 2463612 312
Сап аноны, разбираюсь сейчас в спринг секурити. И у меня чет немного плывет мозг. Такой вопрос, нужен ли мне oauth, если я НЕ хочу делать авторизацию через сторонние ресурсы типо гугла?
Аноним 15/09/22 Чтв 16:58:41 2463616 313
>>2462686
я 10 лет мучу бизнес и баб трахаю. До того домутился и дотрахался, что вот сижу учу джаву любую свободную минуту.
Аноним 15/09/22 Чтв 17:23:43 2463628 314
>>2463612
Зачем сторонний? Можно поднять свой oauth-сервер.
Аноним 15/09/22 Чтв 17:33:37 2463636 315
>>2463616В

Хех. Вспоминается история одного чувака, которого я встретил как то на айти-конференции. Если я правильно помню, он до 40 лет занимался сопровождением многомиллиардных сделок и тендеров, имея с них процентик. Но в конечном итоге ему все равно пришлось вкатываться в айти. Как он рассказывал --- такого рода контракты невозможно заключать без моря выпитого алкоголя, и к 40 годам он уже просто не вывозил пьянство как должностную обязанность, тупо по здоровью.

Непонятно только почему он выбрал айти --- ведь тут то же самое пьянство, только платят меньше.
Аноним 15/09/22 Чтв 17:39:19 2463640 316
>>2463612

Нужен. OAuth часто используют в микросервисной архитектуре.
Аноним 15/09/22 Чтв 17:42:12 2463646 317
>>2463305

Хороший вывод. Я б его озвучил еще разрабам kotlinc, у которых plugin api доступен только из форка kotlinc репозитория.
Аноним 15/09/22 Чтв 17:51:35 2463652 318
>>2463646
Разве? Я вроде видел, что у них как раз плагины для компилятора как раз доступны.
Аноним 15/09/22 Чтв 17:54:45 2463656 319
>>2463652

Сами плагины --- да. А вот если ты свой написать хочешь, то придется склонировать реп компилятора и контрибьютить плагин в него. API как подключаемая джарка не распростряняется.
Аноним 15/09/22 Чтв 18:23:28 2463676 320
Немчинский сказал что если я не знаю английского - то я не программист :с Это правда ?
Аноним 15/09/22 Чтв 18:30:22 2463681 321
>>2463676
Не правда. Становись тимлидом и пусть шныри вкатуны переводят документацию. А ты только обкашливай вопросики
Аноним 15/09/22 Чтв 19:12:56 2463700 322
Аноним 15/09/22 Чтв 19:14:21 2463702 323
Как же хочется лум...
Аноним 15/09/22 Чтв 19:15:01 2463703 324
go loom
Аноним 15/09/22 Чтв 19:15:31 2463705 325
>>2463676
Как ты без английского читаешь документацию, стаковерфлов и туториалы?
Аноним 15/09/22 Чтв 19:17:15 2463707 326
Щас бы лум...
Аноним 15/09/22 Чтв 19:17:38 2463709 327
>>2463705
Переводчиков не существует типа?
Аноним 15/09/22 Чтв 19:21:02 2463714 328
>>2463709
Вот ты и решил свою проблему, английский можешь не учить.
Аноним 15/09/22 Чтв 19:22:53 2463716 329
>>2463714
Вообще я просто мимо проходил
Аноним 15/09/22 Чтв 19:31:25 2463727 330
>>2463716
Значит, предложил решение.
Аноним 15/09/22 Чтв 19:58:27 2463753 331
>>2463449
>когда там уже лум
Через 5 дней в JDK19.
Аноним 15/09/22 Чтв 20:15:11 2463760 332
>>2463705
С помощью переводчика читаю документацию и стэковерфлов с туториалами на изи. По началу было сложно воспринимать чушь которая выходила с переводчика т.к. перевод далеко не идеальный... А потом как то всё само заходить начало :/
Аноним 15/09/22 Чтв 20:21:36 2463767 333
>>2463676
Как ты без английского будешь работать в помойной галере с индусами?
Аноним 15/09/22 Чтв 20:24:16 2463770 334
Чем чисто теоретически можно заменить дженерики, если их самих трогать нельзя? Кастовать тоже нельзя
Аноним 15/09/22 Чтв 20:28:53 2463771 335
>>2463770
Интерфейсами и паттернами. Ну или копипастой и кодогенерацией.
Аноним 15/09/22 Чтв 20:33:42 2463779 336
>>2463767
Я че то не видел в России индусов.
Аноним 15/09/22 Чтв 20:44:56 2463785 337
>>2463770
> их самих трогать нельзя? Кастовать тоже нельзя
Копипастой.
Вместо add(T)
Будет add(Int) add(String) add(Hui) add(Govno)
Структуру, куда будет добавляться каждый тип тоже копипастить
int[] String[] Hui[] Govno[]
Аноним 15/09/22 Чтв 20:57:00 2463793 338
>>2463124
>Например, в 8 жабе можно создать класс с названием var (похуй, что нейминг не соответствует соглашению), а в 11 уже нельзя.
Нихуя себе поломка обратной совместимости. Так можно любой багфикс считать поломкой обратной совместимости, если строить логику, основанную на багах. Поломка обратной совместимости - это когда ты написал хороший, чистый код, а он потом взял и не запустился после обновы жабы. Такого в джаве нет, если чё то и ломается, то ломается из-за привязки к кишкам.
Аноним 15/09/22 Чтв 21:06:27 2463795 339
>>2463793
На 100% сохранить полную обратную совместимость можно только перестав вообще вносить правки в жабу. Законсервировать как кобол на текущей стадии развития и потом искать пути для обхода текущих багов жабы.
> Такого в джаве нет, если чё то и ломается, то ломается из-за привязки к кишкам.
В восьмой жабе я мог спокойно пользоваться JAXB, а теперь надо тащить левые жарники с рантаймами всяких говноглассфишей. И так с кучей других API.
Аноним 15/09/22 Чтв 21:34:03 2463820 340
>>2463793
>>Такого в джаве нет
У меня например жук написанный на 11 в некоторых местах не компилируется в 17 из за добавления java.lang.Record.
Или название класса Record это тоже использование кишок?
Аноним 15/09/22 Чтв 21:36:00 2463823 341
>>2463820
Че ты блядь несешь
Как у тебя в 11 жаве мог быть класс java.lang.Record?
Аноним 15/09/22 Чтв 21:40:05 2463827 342
>>2463823
Нет у него java.lang.Record, есть org.jooq.Record, который, очевидно, был импортирован, а не писался везде полным именем класса с пакетом. И теперь импортировать нельзя.
Аноним 15/09/22 Чтв 22:25:43 2463861 343
>>2463827
И что? Охуеть проблема полное имя класса написать или вынести в отдельный класс.
Аноним 16/09/22 Птн 14:15:04 2464230 344
2022-09-1616-14[...].png 19Кб, 578x442
578x442
>>2463820
Немного не понял, в чём проблема. Прямо сейчас затестил - у меня всё работает.
Аноним 16/09/22 Птн 17:59:06 2464450 345
>>2464230
Не вижу у тебя ни жуковский рекорд, ни джавовский. Ты вообще понял про что речь?
Аноним 16/09/22 Птн 21:32:07 2464670 346
>>2458869 (OP)
На каком гуй-тулките в жабе нынче модно писать оконные приложения?
Аноним 16/09/22 Птн 21:41:07 2464681 347
>>2464670
> гуй-тулките
> модно
Выбери одно.
Аноним 16/09/22 Птн 21:55:46 2464691 348
Аноним 17/09/22 Суб 12:21:29 2465032 349
>>2464670
swing
другого не завезли
ну может compose multiplatform в далеком будущем
Аноним 17/09/22 Суб 13:41:51 2465130 350
>>2465032
Спс, пойду потыкаю.
Аноним 17/09/22 Суб 14:28:02 2465184 351
Лум....
Аноним 17/09/22 Суб 14:43:41 2465213 352
Господи, когда же лум........
Аноним 17/09/22 Суб 14:48:14 2465224 353
Аноним 17/09/22 Суб 15:33:31 2465275 354
1663418011623.png 41Кб, 786x707
786x707
>>2465032
Так, формочку сделоль. А как там разметку создавать? Какие-то аналоги xaml есть?
Аноним 17/09/22 Суб 15:44:57 2465290 355
>>2465275
> А как там разметку создавать?
Вся разметка пишется на жабе. Дизайнеры форм в IDE также генерируют код на жабе.
> Какие-то аналоги xaml есть?
Зачем нужны аналоги XAML, если XAML уже существует? Достаточно не лезть в жабу и выбрать подходящий язык для "оконных приложений".
Аноним 17/09/22 Суб 15:53:00 2465299 356
>>2465275
ПОЧЕМУ У ТЕБЯ НАЗВАНИЕ КЛАССА С МАЛЕНЬКОЙ БУКВЫ СУКА???????????????????????????????????????????????????????!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Аноним 17/09/22 Суб 16:36:26 2465361 357
>>2465299
Потому что я так хочу. И что ты мне сделаешь?
>>2465290
Как сделать нормальный обработчик события? На ютубе инфоцыгане предлагают класс писать. Чтоблять? Писать класс ради клика кнопкой?
Аноним 17/09/22 Суб 16:41:39 2465367 358
Аноним 17/09/22 Суб 16:43:58 2465368 359
>>2465361
Да, писать класс ради одного клика. Не то что в шарпе. Понял, как всё плохо с гуем в жабе?
Аноним 17/09/22 Суб 16:47:10 2465370 360
1663422430397.png 22Кб, 1156x128
1156x128
>>2465368
> Понял, как всё плохо с гуем в жабе?
Вполне:
Аноним 17/09/22 Суб 16:58:38 2465387 361
>>2463767
Тоже думаю об этом...
Аноним 17/09/22 Суб 16:59:40 2465390 362
>>2465361
>И что ты мне сделаешь?
Не буду тебе помогать, лол.
Аноним 17/09/22 Суб 17:02:11 2465393 363
1663423331435.png 19Кб, 646x133
646x133
>>2465368
> Не то что в шарпе.
Да не трясись ты так. Я немного погуглил и нашёл лямбды и всё заработало.

Сразу блять шарперов ищут под кроватью. Я изучаю все языки подряд и кайфую.
Аноним 17/09/22 Суб 17:03:51 2465397 364
>>2465367
О.
Тогда пойду сразу на JavaFX взгляну. А то что-то свинг как-то сразу вызывает кучу вопросов, на которые ответ один.
Аноним 17/09/22 Суб 17:05:14 2465401 365
1663423514223.png 20Кб, 484x194
484x194
>>2465390
Всё-всё. Исправился.
Аноним 17/09/22 Суб 17:08:13 2465408 366
>>2465368
Петушарпер не знает про то, что код можно несколько раз использовать.
Аноним 17/09/22 Суб 17:09:43 2465410 367
>>2465224
Жаба фуфыкс устаревшее говно, про которое надо забыть как про страшный сон.
Аноним 17/09/22 Суб 17:10:11 2465413 368
>>2465408
Я не петушарпер, просто хочу, чтобы никто никогда не писал гуй на жабе. Идею, например, надо срочно переписать на C++.
Аноним 17/09/22 Суб 17:12:51 2465419 369
>>2465413
Ты серьёзно? Чтобы багов стало ещё в 10 раз больше?
Аноним 17/09/22 Суб 17:13:05 2465421 370
>>2465410
Толсто.
>>2465397
> пойду сразу на JavaFX взгляну
После первого взгляда сразу обнарухился и файл разметки fxml и нормальные (адекватные) методы инициализации приложения. Изучаю...
Аноним 17/09/22 Суб 17:18:13 2465426 371
>>2465419
В божественной вижуалстудии нет, не vscode ведь как-то справились.
Аноним 17/09/22 Суб 17:23:13 2465432 372
Снимок экрана 2[...].png 31Кб, 903x244
903x244
Как указать путь в конфигах slf4j-log4j к папке %appdata% ?
Аноним 17/09/22 Суб 17:27:23 2465435 373
>>2465426
> я не петушарпер
Урокъ 5. Пятая теорема Петухана.
Аксиома: Не существует петушарпера, который смог бы скрыть от мира свой диагноз или сексуальную ориентацию. При критическом уровне ЗРАДЫ свиной визг настолько силён, что пробивает все системы защиты и маскировки петушарперов на планете
Аноним 17/09/22 Суб 17:28:43 2465436 374
>>2463481

Согласен. Не надо. Это извращение.

>>2463477

>Это как забивать гвозди микроскопом.
Вот тоже самое чувствовал, когда писал это ебланство.
Лаба про регулярки - всё делаются через них. Блять.

>>2463489

Пассибо. Немного дописал до ([\\(]) и заработало.
Аноним 17/09/22 Суб 19:12:17 2465567 375
>>2465435
Докажи, что я петушарпер.
Аноним 17/09/22 Суб 19:26:22 2465576 376
Аноним 17/09/22 Суб 19:31:26 2465580 377
>>2465576
> не мешайте людям общатся
О какой-то хуите общаемся, логгеры, опхуй, гуи, лум, лабы, шарпобляди. Даже ООП-срач и Егорка были интереснее.
Аноним 17/09/22 Суб 19:44:58 2465591 378
>>2465580
Добавлю тебе интересную тему для обсуждения. Как всё-таки ВКАТИТЬСЯ сейчас в жабу? Что нужно знать вкатуну????
Аноним 17/09/22 Суб 19:45:52 2465592 379
Подскажите пожалуйста, в сетевой модели OSI/ISO сколько уровней, 4 или 7 ?!
Аноним 17/09/22 Суб 19:47:33 2465595 380
>>2465591
Что нужно знать, то пишут в вакансиях. Кор, алгоритмы/структуры данных, спринг, REST, базы, хибернейт, очевидные Git и мавен, опционально докер.
Аноним 17/09/22 Суб 19:48:21 2465596 381
>>2465592
Сложно википедию открыть? 7 уровней.
Аноним 17/09/22 Суб 20:10:49 2465611 382
>>2465592
Сетевой модели OSI/ISO не существует.
Аноним 17/09/22 Суб 20:31:48 2465637 383
>>2465592
В модели SOSI следующие уровни
1. Неглубокий
2. Глубокий
3. Горловой
Аноним 17/09/22 Суб 21:03:00 2465662 384
>>2465361
>Как сделать нормальный обработчик события
Лямбдой.

>>2465275
>Какие-то аналоги xaml есть?
Нет. Вообще разметка в свинге на редкость убогая по сравнению с винформами и дельфи - здесь нельзя произвольным образом контролы размещать в формочке. И все через джава код, никакого xaml.

>>2465413
Идею никто никогда не перепишет на С++....
Аноним 17/09/22 Суб 21:04:29 2465663 385
>>2465662
> Идею никто никогда не перепишет на С++....
Почему?
Аноним 17/09/22 Суб 21:04:30 2465664 386
>>2465224
>JavaFX
Оно вроде погибло несколько лет назад, хотя вроде как какой-то опенсорс продолжали тянуть в полуработающем виде. Не помню уже. Но вообще возьми Qt/electron и не мучай жопу.
Аноним 17/09/22 Суб 21:04:40 2465665 387
Аноним 17/09/22 Суб 21:06:27 2465667 388
Аноним 17/09/22 Суб 21:06:44 2465668 389
>>2465663
1. Сейчас кризис и никто в проекты подобного рода вкладываться не будет
2. Это займет охулиард времени, учитывая какое помойное легаси представляет из себя идея.
3. Нет столько желающих людей портировать awt/swing приложение (со всеми дополнительными костылями от jb) на какой-нибудь Qt, который через N-ое количество лет тоже может умереть.
Аноним 17/09/22 Суб 21:11:06 2465670 390
Аноним 17/09/22 Суб 22:03:45 2465709 391
1663441426272.png 67Кб, 684x564
684x564
>>2465664
> Оно вроде погибло несколько лет назад
Я скочал на пощупать 19 версию, выпущенную в сентябре этого же года. Крайний LTS это 17 версия, выпущеная год назад и на поддержке до 26 года. Ну я хуй знает, как такое можно считать погибшим.

>>2465670
> А вообще гуи на жабе в здравом уме начинать никто не будет.
Ну, судя по сайту с которого я кочал (Глюон) - этот тулкит кому-то всё таки нужен. Ну ладно, раз нет, пойду другие варики искать.

Всем пока. Можете не отвечать. От треда отписался. Вот вам напоследок, что я за вечер наваял неспешно тыкая по кнопкам.
Аноним 17/09/22 Суб 22:11:06 2465718 392
>>2465709
Хуйню какую-то сделал
Аноним 17/09/22 Суб 22:35:17 2465740 393
>>2465709
>Ну я хуй знает, как такое можно считать погибшим
Версии-то может и обновляются, цифры увеличиваются, однако в реальности жабой FX почти никто не пользуется. Если потребуется сделать что-либо нетрививальное, то не получится просто вязть и нагуглить примеры на стаковерфлоу, как это можно сделать с qt, электроном или даже свингом с винформами.

>>2465709
>кому-то всё таки нужен
Да, но это буквально единицы от и без того очень узкого рынка десктопов.
Аноним 17/09/22 Суб 22:45:08 2465748 394
Аноним 18/09/22 Вск 01:14:28 2465853 395
@SneakyThrows не преобразует эксепшен в рантайм экспешнен, получается, если корневая программа, вызывающая third-party аддоны вот таким образом:

try {
....addon.run();
} catch (RuntimeException exception) {
....addon.disable();
}

может завалиться от @SneakyThrows?
Аноним 18/09/22 Вск 01:22:58 2465857 396
>>2465853
Подобные программы часто ловят не то что RuntimeException, они ловят и Throwable, чтобы уж точно не свалиться. Например, так делают в серверах приложений, чтобы не свалилось всё из-за говна в одном war-нике.
Аноним 18/09/22 Вск 01:35:15 2465866 397
Подскажите пожалуйста, как получить путь к ресурсам в файле.jar ?
Конкретно мне нужен доступ к аудиофайлу с расширением wav.
Есть конечно вариант вынести его в отдельную папку, но хотелось бы что бы мелодия запускалась вместе с приложением, а не после того как будет установлена рабочая директория.
Аноним 18/09/22 Вск 01:37:22 2465867 398
>>2465853
>} catch (RuntimeException exception) {
Так никто не пишет.
Аноним 18/09/22 Вск 01:42:10 2465868 399
>>2465867
>>2465857
А если разрабы корня хотели, чтобы Error валило программу, а RuntimeException нет? По стандарту Exception сам по себе прилететь не может, поэтому такой код выглядит вполне резонным. А тут лобок какой то даун изобрёл, который ломает байткод и ведёт себя почти что как вирус.
Аноним 18/09/22 Вск 02:01:19 2465876 400
>>2465868
Ничего не запрещает ловить Exception. Если тебе нужна надёжность, то будешь писать код более надёжным, чем предположения стандарта, чтобы защититься от других даунов, которые кидают Error или наследуются от Throwable. Проблемы можно создать и без лобка.
Аноним 18/09/22 Вск 02:07:10 2465880 401
>>2465866
Через getResourceAsStream(). Если жарник не загружен, загружаешь его через класслоадер. Если путь не известен, обходишь жарник через JarFile.
Аноним 18/09/22 Вск 03:25:58 2465897 402
Какие дауны пишут блокирующий код? Нахуя?
Аноним 18/09/22 Вск 03:56:04 2465901 403
>>2465897
Если в пуле достаточно тредов, это не вызывает проблем.
Аноним 18/09/22 Вск 05:16:46 2465925 404
>>2465897
У асинхронного кода, если нет больших нагрузок есть оверхед по времени исполнения по сравнению с синхронным.
К тому же под капотом асинхронный код с неблокирующим вводом-выводом сложнее и его в разы сложнее отлаживать и тестировать.
На невысоко нагруженных системах использовать асинхронное io - глупо.
Аноним 18/09/22 Вск 11:40:40 2466032 405
По работе ведётся разработке на спринге, начал забывать тонкости жабы кор. Есть сейм, как фиксить?
Аноним 18/09/22 Вск 11:43:52 2466037 406
>>2466032
Есть, забыл sql. Похуй.
Аноним 18/09/22 Вск 13:27:29 2466168 407
>>2466032
А на спринге ты не жабе пишешь, что ли? Какие тонкости ты смог забыть?
Аноним 18/09/22 Вск 13:33:40 2466175 408
Пиздос.
После 3х книг по жабе (Шилдт,Майкрофт,Гетц) понял, что слишком дохуя чего не знаю. Как фиксить?
Аноним 18/09/22 Вск 14:01:41 2466206 409
>>2466168
Ну, допустим, я точно не помню, метод clone находится в Object или в Cloneable, потому что этим никогда не пользуюсь. Забыл коллекции, потому что они нахуй никогда не нужны, кроме arraylist, hashmap и hashset. Забыл многопоточку, потому что в чистом виде она нахуй никогда не нужна
Аноним 18/09/22 Вск 15:11:19 2466275 410
>>2466175
Перестать читать книги
Аноним 18/09/22 Вск 16:07:35 2466333 411
>>2466275
Откуда черпать информацию?
Аноним 18/09/22 Вск 16:12:45 2466338 412
>>2466333
Треды на дваче, конечно
Аноним 18/09/22 Вск 16:16:26 2466342 413
>>2466338
Тут даже инфу по Спрингу держат в тайне
Аноним 18/09/22 Вск 17:25:36 2466390 414
>>2466275
Так с практикой же читаю книги. Увидел какую-то новую йобу, покрутил её, закинул разные данные. И когда я понял, каким именно образом это работает, то продолжаю дальше.
Аноним 18/09/22 Вск 18:12:47 2466417 415
Начиная от какой цифры iq можно вообще рассматривать то, чтобы стать программистом?
Аноним 18/09/22 Вск 18:13:21 2466418 416
Аноним 18/09/22 Вск 18:15:28 2466419 417
>>2466417
80 iq чтоб крудошлёпить, 140 iq для настоящего программирования. Правда айтишка сейчас прогнила, гораздо более важен тембр твоего голоса и размер челюсти, чем реальные навыки.
Аноним 18/09/22 Вск 18:25:38 2466431 418
>>2466417
Как повезёт. Рынок всё равно схлопнулся два месяца назад.
Аноним 18/09/22 Вск 18:45:23 2466437 419
>>2466419
Вот я тесты сколько ни сдавал, у меня результаты в промежутке 115-125. Сколько уже учусь, для себя заметил, что "крудошлепскую хуйню" я делаю на изиче, не напрягаясь. Но когда нужно применить какой-нибудь алгоритм, например что-нибудь связанное с графами и работой с ними и прочее подобное, я зачастую ощущаю себя бабуином и демотивируюсь. Поэтому, пожалуй, с тобой соглашусь. Крудошлепствовать любой средний Васян сможет. Про 80 ты загнул, но с среднехуй с соткой справится. А вот быть тру-программистом, по праву носящему это звание, способно лишь пара процентов от популяции.
>>2466431
А что два месяца назад произошло?
Аноним 18/09/22 Вск 18:48:01 2466442 420
>>2466419
> Правда айтишка сейчас прогнила, гораздо более важен тембр твоего голоса и размер челюсти, чем реальные навыки.
Распиши, пожалуйста, что это значит.
Аноним 18/09/22 Вск 18:49:01 2466443 421
> настоящее программирование
У вас тут локальный мем такой?
ищи реально никакой как все сидит?
Аноним 18/09/22 Вск 18:49:33 2466446 422
1629566504966.png 36Кб, 1027x903
1027x903
>>2466437
> А что два месяца назад произошло?
Набралась статистика
Аноним 18/09/22 Вск 19:04:12 2466458 423
>>2466442
>Распиши, пожалуйста, что это значит.
Это значит, что из-за длительного "золотого периода" айтишка стала чем-то типа шоу-бизнеса, где количество заработанных тобой денег зависит только от твоей внешности и умения пиздеть, а ещё связей, конечно же. Но никак не от твоего интеллекта и тем более навыков.

>>2466443
>>2466446
Господа ципсошники и петушарперы, идите нахуй с треда.
Аноним 18/09/22 Вск 19:05:04 2466459 424
>>2466446
Это по жабе или в целом? Если второе, то делать выводы по этой статистике относительно положения дел на рынке тырпрайз жабы неправильно
Аноним 18/09/22 Вск 19:05:06 2466460 425
>>2466417
80 хватит точно при должной усидчивости, даже если это ссанная веб-студия с вёрсткой, битриксом и 1С.
Я никаких тестов всерьёз не проходил (только поржать, типа "выберите 15 цветов и узнайте свой IQ", но вряд ли у меня больше 100. Сам считаю себя тупым, но усидчивый что пиздец, таски закрываю в срок, ЗП растёт.
Аноним 18/09/22 Вск 19:06:49 2466462 426
>>2466459
В целом, конечно. И теперь двощеры делают выводы, типа раз аутсорс съебался, то айти всё. Будто внутренних продуктов у нас нет.
Аноним 18/09/22 Вск 19:15:56 2466472 427
>>2466459
По жабе в прошлом или в позапрошлом треде были скрины
Аноним 18/09/22 Вск 19:49:52 2466516 428
>>2466431
>схлопнулся два месяца назад
Раньше, сейчас-то все уже стабильно хуево. В марте-апреле регулярно скидывал количество джава вакансий в мвп тред. Сначала было 5000, потом 4500, потом 4000, потом меньше 4к, потом небольшой отскок до 4, и падение до трех тысяч. Сейчас стабильно 2850-3000 держится. Но видимо еще сдуется медленно до двух тыщ за несколько месяцев. Потребности в джава разрабах сейчас нет.
Аноним 18/09/22 Вск 20:14:06 2466549 429
image.png 72Кб, 1252x485
1252x485
Аж вскрыться захотелось.
Аноним 18/09/22 Вск 20:17:25 2466552 430
>>2466549
От 15000 до 300000 российских рублей, что не так?
Аноним 18/09/22 Вск 20:18:38 2466555 431
>>2466552
Вакансий нихуя толком.
С кайфом бы постажировался за 15к рублей.
Аноним 18/09/22 Вск 20:25:06 2466557 432
>>2466516
Дело даже не в оставшемся количестве. Там половина объявлений тупо фиктивные, по ним никогда не ответят, потому что они не ищут разрабов. Не знаю зачем их открывают и переоткрывают несколько раз в неделю, статы мб набивают какие то.
Аноним 18/09/22 Вск 20:25:36 2466559 433
>>2465880
Возвращает null. Очень плохо...
Аноним 18/09/22 Вск 20:26:01 2466560 434
>>2466555
Они хотя бы есть. Мне вот пришлось уехать из родного мухосранска в Д
Москву, но в Рашке с этим проще.
Аноним 18/09/22 Вск 20:26:55 2466562 435
>>2466559
Небось что-то с путями.
Аноним 18/09/22 Вск 20:28:49 2466565 436
>>2466418
Ты тоже забудешь. Вот закончишь изучать кор, приступишь к спрингу и забудешь
Аноним 18/09/22 Вск 20:34:53 2466572 437
>>2466560
Что такое Рашка, тварь?
Аноним 18/09/22 Вск 20:39:38 2466580 438
Аноним 18/09/22 Вск 21:15:25 2466610 439
Щас бы лум...
Аноним 18/09/22 Вск 21:21:54 2466614 440
Аноним 18/09/22 Вск 21:22:36 2466616 441
>>2466516
У джавы дела еще более-менее в отличие от петушарперов, у которых и до 2022 рынок был мертвейший, и лоу айсикью петухонщиков, работу которых может выполнять любая продавщица пятерочки
Аноним 18/09/22 Вск 21:22:41 2466617 442
>>2466614
И ничего я не заебал. А вот разрабы джавы заебали тянуть с релизом лума!
Аноним 18/09/22 Вск 21:25:26 2466619 443
Уже готовы перекатывать весь свой проект на 5 миллионов строк кода на джаву 19, потому что какой-то долбоеб захотел лум потрогать?
Аноним 18/09/22 Вск 21:37:13 2466631 444
>>2466619
>Уже готовы перекатывать
Да, всего 60 постов осталось.
Аноним 18/09/22 Вск 21:37:35 2466633 445
>>2466619
Че вообще нужно прописывать в проекте чтобы 5 000 000 строк получилось?
Аноним 18/09/22 Вск 21:38:36 2466636 446
@Data или record?
Аноним 18/09/22 Вск 21:39:44 2466638 447
>>2466633
If else if else…
Switch case case case…
Аноним 18/09/22 Вск 21:40:32 2466639 448
>>2466636
Рекорд конечно правильнее будет, но мне привычнее @Data.
Аноним 18/09/22 Вск 21:41:00 2466640 449
Анончики, пропала кнопка "открыть папку в идее" из контекстного меню проводника, как вернуть?
Аноним 18/09/22 Вск 21:42:05 2466641 450
>>2466639
А кстати, в 19 жабу завезут эксклюзивные фичи для рекордов, поэтому @Data сразу в топку.
Аноним 18/09/22 Вск 21:48:06 2466643 451
Что должен знать и уметь жаба джун в целом?
Аноним 18/09/22 Вск 21:49:05 2466644 452
>>2466643
Нетворкать и пиздеть ни о чём.
Аноним 18/09/22 Вск 21:52:19 2466647 453
>>2466641
В рекордах не унаследуешь от другого класса, в отличие от data
Аноним 18/09/22 Вск 21:53:36 2466649 454
>>2466647
Наследование - антипаттерн.
Аноним 18/09/22 Вск 21:55:39 2466650 455
>>2466644
А иметь задроченный кор, Java 8, concurrency, Spring наверняка же надо, верно?
Аноним 18/09/22 Вск 21:56:40 2466651 456
>>2466650
Ну это тоже, но это не основное. Все что ты перечислил надрачивается за неделю.
Аноним 18/09/22 Вск 21:58:07 2466652 457
Аноним 18/09/22 Вск 21:59:28 2466655 458
>>2466651
За два часа. Вообще бэкендером становятся за неделю, до сеньора недели полторы. Вот пиздоболом-максималистом на дваче дольше придётся становиться, это путь длиною в жизнь.
Аноним 18/09/22 Вск 21:59:31 2466656 459
>>2466652
Спринг за неделю это лол, а кор и многопоточка нет?
Аноним 18/09/22 Вск 22:00:45 2466658 460
>>2466644
А если ты замкнутый в себе, пугливый ассоциальный хиккан, то что, не возьмут в жава разработчики?
Аноним 18/09/22 Вск 22:00:53 2466659 461
>>2466651
Неделю это если ты бывший петухонщик или закончил пту со справкой. В ином случае - тут день-два максимум и то, если весь спринг целиком осваивать
Аноним 18/09/22 Вск 22:01:52 2466661 462
>>2466656
Конкаренси только на РАБотке осваивается, разве нет?
Аноним 18/09/22 Вск 22:05:53 2466664 463
>>2466619
Не, ждём, когда в WebSphere добавят поддержку лума.
>>2466633
Просто надо впилить дохуя функционала в один проект, чтобы в одной системе могли работать десятки тысяч пользователей с разными ролями. У нас всего лишь 500 000, ибо проект более специализированный, хотя нет и половины того, что в планах у кабанов.
Аноним 18/09/22 Вск 22:47:39 2466716 464
>>2466661
Ты с конкаренси на работе никогда и не встретишься)))
Аноним 18/09/22 Вск 22:51:57 2466725 465
>>2466716
Не надо меня буллить, пжлст.
Аноним 18/09/22 Вск 22:55:46 2466730 466
legacy-shit.PNG 77Кб, 1206x467
1206x467
>>2466633
Посмотрел вот исходники одного легаси-копролита(java-8, spring 4 без бута, все деплоилось на 7ой томкат? часть конфигов в хмл, часть кодом, без тестов, фронт на велосипеде поверх древнего реакта), с которого я убежал в страхе год назад. И там всего 318к строчек джава кода, хотя всего строчек 1.6кк. Убежал очень быстро, успел пощупать ну 5% кодовой базы где-то. Причем там даже по рассказам старожил как минимум четверть кода была просто дохлой.
Сейчас пишу в 2 микросервиса(джава-17, спринг-бут последний) по 8к и 10к строчек джава-кода, где половина тесты. Без тестов микросервис ну 4-5к строк. А вместе со всей мишурой - под 40к. Но там до прода еще далеко и тогда объем кода еще раза в два увеличится, ну будет 10к рабочего кода.
У меня каждая неделя это где-то +1500-300 строчек(ну это всего вместе с тестовыми json-ками, наверно нового нетестового джава кода строчек по 200 в неделю).
В декабре собираюсь микросервисы сразу переводить на спринг 6.
Java21-LTS выходит 2023-09-19, так что может и ее успею на этом проекте впихнуть.
Аноним 18/09/22 Вск 23:01:59 2466738 467
>>2466649
Я другой анон, но рекорды мне в большинстве случаев не подходят.
У меня здоровенные динамические входные дтошки с 4мя кейсами-наследниками. Поэтому куча аннотаций валидаций и аннотаций джексона лежат в интерфейсе.
Аноним 19/09/22 Пнд 01:04:12 2466825 468
>>2466652
>>2466655
>>2466659
Ну я серьёзно, мужики. Именно задрочить так, чтобы пройти собес и попасть на работку, а не начать писать хоть какой-то вменяемый код. Для написания вменяемого кода нужен минимум год, и то, если у тебя, как у меня 180 iq.
Аноним 19/09/22 Пнд 01:04:43 2466826 469
>>2466658
К сожалению, тебе будет очень сложно.
Аноним 19/09/22 Пнд 01:08:49 2466827 470
>>2466738
Если бы ты писал чистый объектно ориентированный код у тебя такой хуйни бы не было.
Аноним 19/09/22 Пнд 01:20:33 2466834 471
>>2466827
Ну вот кейс конкретный. У меня есть сущность организация. Организаций - 4 типа. Там 20 полей общих и по 5-10 у каждой свои. Эндпоинт для сохранения один.
Как мне их правильно сохранять по маня-ооп?
Аноним 19/09/22 Пнд 01:41:05 2466841 472
>>2466834
Дегенеративное хуйло с клиповым мышлением не может посмотреть на проблему с другой стороны, спешите видеть. ООП - это не про структуры данных, ООП - это про живые объекты, которые чё-то делают, не открывая, что находится в них. В ООП создающиеся классы сразу после создания прячутся под интерфейс. А теперь расскажи, зачем тебе эти организации нужны и я бесплатно, по своей доброй воле натолкну тебя на ООП решение.
Аноним 19/09/22 Пнд 01:50:02 2466846 473
Ура, Егорка вернулся!
Аноним 19/09/22 Пнд 03:22:51 2466856 474
>>2466841
Это информационная система для отображения контрагентов нашей организации. Типов контрагентов сейчас 4, потом будет больше. Ну и есть обязательные и опциональные поля, как для всех, так и для отдельных типов организации. Для банков одни, для служб доставки другие, для арендаторов третьи, для поставщиков четвертые. Но все должны быть в одной сущности для сводных отчетов.
Аноним 19/09/22 Пнд 04:13:56 2466864 475
>>2466856
Интерфейс Сounterparty с обязательными методами для всех контрагентов, далее классы Deliverer, Tenant, Bank, Provider и тд. У каждого своя логика и свои конструкторы, но все реализуют один интерфейс.
Аноним 19/09/22 Пнд 04:25:42 2466867 476
>>2466864
Чего только люди не придумают лишь бы не учить типовую конфигурацию 1С.
Аноним 19/09/22 Пнд 04:31:46 2466869 477
>>2466867
Прикол ООП в том, что вышеупомянутое говно
> Deliverer, Tenant, Bank, Provider
можно типизировать и создавать одним методом, а твой топорный 1С как был топорной оболочкой к БД, так и останется, без какой-то крутой логики.
Аноним 19/09/22 Пнд 04:51:34 2466873 478
Нашёл либу 14 летней давности. Как думаете, заведётся на 19 жабе?
Аноним 19/09/22 Пнд 07:31:27 2466891 479
>>2466873
Ты оппост что-ли не читал?
> Java никогда не ломает обратную совместимость - твой код, написанный на Java 1.2 будет работать на Java 18 - и не зависит от платформы, являя из себя единственный полностью кроссплатформенный язык с кроссплатформенной экосистемой (если не считать языков-паразитов на JVM).

Конечно заведется
Аноним 19/09/22 Пнд 07:36:58 2466895 480
>>2466458
>Это значит, что из-за длительного "золотого периода" айтишка стала чем-то типа шоу-бизнеса, где количество заработанных тобой денег зависит только от твоей внешности и умения пиздеть, а ещё связей, конечно же. Но никак не от твоего интеллекта и тем более навыков.
Вот. Тред даже был в прошлом году, что селёдки-эйчарки отбирают соискателей по фоткам в резюме. Чем красивее, тем выше шансов, и это даже при более плохих профессиональных показателях.
И вообще, да, айти сейчас действительно сорт шоу-биза, где нужно быть стильно-модно-молодёжным смузихлёбом, а не инженером.
Аноним 19/09/22 Пнд 07:39:41 2466896 481
>>2466895
>>2466458
С пробуждением, так во все сферах бтв
Даже статистика была что более карстовые и высокие люди больше зарабатывают

ну и софт скилы неожиданно очень важны
Аноним 19/09/22 Пнд 07:39:53 2466897 482
>>2466649
>Наследование - антипаттерн.
Именно.

>>2466841
>ООП - это не про структуры данных, ООП - это про живые объекты, которые чё-то делают, не открывая, что находится в них.
ООП - это абсурд по определению, потому что идея наследования противоречит идеи инкапсуляции.
Аноним 19/09/22 Пнд 08:11:02 2466904 483
Аноним 19/09/22 Пнд 08:31:05 2466909 484
>>2466897
Если в вашем коде есть инкапсуляция, значит это признак плохой архитектуры приложения.
Аноним 19/09/22 Пнд 08:32:31 2466910 485
>>2466896
>С пробуждением, так во все сферах бтв
Возможно, но не до такой степени. Айти, особенно в снг, слишком распиарено, слишком смузихлёбно и слишком ванильно.
>Даже статистика была что более карстовые и высокие люди больше зарабатывают
И в Европе даже хотели ввести налог на красоту, да.
>
>ну и софт скилы неожиданно очень важны
Логично, что нужно уметь общаться с людьми, чтобы работать в команде. Но в айти опять же этому уже слишком много внимания уделяется, имхо.
Аноним 19/09/22 Пнд 08:55:33 2466923 486
>>2466910
> слишком смузихлёбно и слишком ванильно.
А эти смузихлебы сейчас тут, в этой комнате?
Аноним 19/09/22 Пнд 09:18:20 2466928 487
Аноним 19/09/22 Пнд 09:18:31 2466929 488
Аноним 19/09/22 Пнд 10:01:35 2466953 489
Поясните дебичу за сеттеры и геттеры, плз.
Сеттер создает копию поля и устанавливает ему переданное значение или меняет ИЗНАЧАЛЬНОЕ поле класса?
Аноним 19/09/22 Пнд 10:05:17 2466955 490
Аноним 19/09/22 Пнд 10:08:18 2466956 491
>>2466825
Сейчас на РАБотку берут только сеньеров, просто некоторым платят как мидлам или джунам.
Аноним 19/09/22 Пнд 10:14:19 2466958 492
>>2466955
а в чем профит?
С одной стороны я понимаю - типа перестраховка на случай когда у нас очень много переменных, но ведь в этом случае можно и сеттеры перепутать, разве нет?
Аноним 19/09/22 Пнд 10:16:56 2466962 493
Аноним 19/09/22 Пнд 10:21:07 2466964 494
>>2466962
Шта Шта?
зачем нужны сеттеры и геттеры? нахуй нужна приватность, если есть обход этой приватности?
Я не утверждаю, что не нужна, я лишь даю понять что я не понимаю, поясните простым языком, пожалста.
Аноним 19/09/22 Пнд 10:44:27 2466973 495
>>2466964
Про геттеры сеттеры писал какой-то анон выше, вкратце: геттеры нужны для того, чтобы вернуть копию филда в имьютбл обьекте, а сеттеры нахуй не нужны, но все их пишут. Ну еще в геттерах/сеттерах можно какую-то логику написать, но это вроде АНТИПАТТЕРН
Аноним 19/09/22 Пнд 10:45:27 2466974 496
>>2466964
По факту это и есть обход приватности.
А пишут так потому что так принято.
Аноним 19/09/22 Пнд 10:56:52 2466980 497
>>2466973
Бывают еще дебилы которые считают что любой метод который вообще хоть что-то возвращает обязательно должен начинаться с ГЕТ.
Причем даже когда пишут на питоне или плюсах.
Аноним 19/09/22 Пнд 11:02:16 2466983 498
>>2466973
Схуяли валидация в сеттере это антипаттерн?
Аноним 19/09/22 Пнд 11:03:23 2466984 499
>>2466964
>зачем нужны сеттеры и геттеры?
Концептуально с т.з ООП - это публичный интерфейс класса по данным на котором строится ОРХИТЕКТУРА. Это контракт который ты выставляешь наружу и мамой клянешься, что он не поменяется и значит на него можно расчитывать когда ты проектируешь охуительные взаимодествия между объектами. Приватное состояние которое возвращают/меняют гет/сет это твое грязное белиьшко реализации - оно полностью в твоей власти и можно делать с ним что угодно при условии, что ты не нарушаешь контракт.

С практической точки зрения - чуть проще менять класс внутри, на этом все.
Аноним 19/09/22 Пнд 11:05:05 2466985 500
>>2466958
Профит в том, что ты пишешь менее связанный код.
Аноним 19/09/22 Пнд 11:07:59 2466986 501
>>2466973
>геттеры нужны для того, чтобы вернуть копию филда в имьютбл обьекте
в чем проблема филд сразу паблик объявить
Аноним 19/09/22 Пнд 11:09:46 2466987 502
>>2466983
Валидация - антипаттерн
Аноним 19/09/22 Пнд 11:16:45 2466993 503
>>2466987
А выброс исключения в конструкторе?
Аноним 19/09/22 Пнд 11:25:01 2466999 504
>>2466973
>сеттеры нахуй не нужны, но все их пишут
Это если у тебя простой DTO без логики. А так сеттер проверяет значение и может делать дополнительные действия. Например есть у тебя объект квадрат, сет сайз будет ещё и перерисовать его.
Аноним 19/09/22 Пнд 11:29:55 2467003 505
Аноним 19/09/22 Пнд 11:34:53 2467011 506
>>2466999
Если он себя уже перерисовывает, может он и в базу сходит себя запишет?
Аноним 19/09/22 Пнд 11:44:02 2467018 507
>>2466993
Конструкторы это антипаттерн.
Аноним 19/09/22 Пнд 11:49:38 2467020 508
>>2467011
Ты только что active record...
Аноним 19/09/22 Пнд 12:15:08 2467057 509
>>2467020
Active record - антипаттерн.
Аноним 19/09/22 Пнд 12:17:14 2467060 510
Эххх щас бы вернуться в 2002 и вызывать код типа
zalupa.huy.pizda.lalka = 5
повсеместно в коде.
Это же так охуенно потом рефакторить, отлаживать или изменять, мммм, просто 10 из 10
Ещё и глобальных переменных пиздануть на весь скоуп, охх щас кончу
Аноним 19/09/22 Пнд 12:19:54 2467065 511
>>2467057
Хочешь сказать в 17 джаву добавили антипаттерны?
Аноним 19/09/22 Пнд 12:46:29 2467105 512
>>2467065
Не добавляли того, что ты написал.
Аноним 19/09/22 Пнд 15:27:27 2467204 513
>>2466825
>180iq
Сколько платил за тест?
Аноним 19/09/22 Пнд 15:39:26 2467211 514
>>2467204
Отправил СМС с кодом "ЯНЕЛОХ" на короткий номер.
Аноним 19/09/22 Пнд 15:52:15 2467218 515
Нахуя в бинах скоупы помимо дефолтного синглтона? Лично я никогда не юзал даже прототайп, не говоря уже о других, названия которых я на данный момент смутно помню. Приведите реальный пример, когда нужно поменять скоуп на какой-то другой
Аноним 19/09/22 Пнд 16:04:09 2467222 516
>>2467218
Создатели спринга не настаивали на использовании конкретной подхода к организации архитектуры проекта, так что оставили все скоупы. Это на практике сложилось делить всё на умные сервисы без данных и тупые дата-классы без логики (anemic model), но кто-то захочет реализовать active record и с prototype напишет что-то подобное:
huiBean.setId(0);
huiBean.setSize(4, 3);
huiBean.save();
И т.д. Например, в session можно хранить корзину, а в request - свалку параметров запроса.
Аноним 19/09/22 Пнд 16:15:11 2467227 517
Применение паттернов в разработке - антипаттерн?
Аноним 19/09/22 Пнд 16:47:25 2467247 518
Аноним 19/09/22 Пнд 16:47:53 2467249 519
>>2467211
Которое стоило 17500 рублей, да?
Аноним 19/09/22 Пнд 17:47:06 2467304 520
Какие на ваш взгляд критерии крепкого java-мидла? 2.5 года в джаве, перекатился с другого стека, не ооп, пилю в энтерпрайзе простые микросервисы на спрингбуте в кубере, без гугла не могу в многопоточку и кафку, т.к. задач не было таких. Могу в БД, рест, прорешиваю литкод В петухи запишете или в стремящиеся?
Аноним 19/09/22 Пнд 18:17:37 2467311 521
Какие на ваш взгляд критерии крепкого java-мидла? 2.5 года в джаве, перекатился с другого стека, не ооп, пилю в энтерпрайзе простые микросервисы на спрингбуте в кубере, без гугла не могу в многопоточку и кафку, т.к. задач не было таких. Могу в БД, рест, прорешиваю литкод В петухи запишете или в стремящиеся?
Аноним 19/09/22 Пнд 18:27:08 2467318 522
Какие на ваш взгляд критерии крепкого java-мидла? 2.5 года в джаве, перекатился с другого стека, не ооп, пилю в энтерпрайзе простые микросервисы на спрингбуте в кубере, без гугла не могу в многопоточку и кафку, т.к. задач не было таких. Могу в БД, рест, прорешиваю литкод В петухи запишете или в стремящиеся?
Аноним 19/09/22 Пнд 18:38:48 2467325 523
>>2467318
Архитектуру и паттерны подтяни, а то ты про DRY явно не слышал.
Аноним 19/09/22 Пнд 18:40:48 2467326 524
Аноним 19/09/22 Пнд 19:01:54 2467343 525
>>2467227
Дроч на паттерны --- антипаттерн. А так --- ну паттерны и паттерны. Умные инженеры нашли в своих проектах повторяющиеся по структуре кода, обозвали их паттернами, написали книгу и продали многомиллионным тиражом. А анальники сделали из этого каргокульт и ищут в нем ответ на то, почему у них код --- говно. Как всегда.
Аноним 19/09/22 Пнд 19:23:29 2467364 526
>>2467304
>>2467311
>>2467318
>не могу в кафку
Оно и видно, ебанат. Хоть бы идемпотенси врубил
Аноним 19/09/22 Пнд 19:28:02 2467370 527
Аноним 19/09/22 Пнд 19:32:54 2467381 528
>>2467325
Лол, проебался с капчей
хорошо circuit-breaker сработал
Аноним 19/09/22 Пнд 19:37:39 2467388 529
>>2467381
40 минут проёбывался?
Аноним 19/09/22 Пнд 19:44:46 2467398 530
>>2467018
Чего бля? Конструкторы это место, которые отвечает за 70% логики в ООП.
Аноним 19/09/22 Пнд 19:44:56 2467400 531
>>2467388
Ну не все же рабочее время на кабанчика въебывать
Аноним 19/09/22 Пнд 19:45:43 2467401 532
>>2467060
>и глобальных переменных пиздануть
Spring.
Аноним 19/09/22 Пнд 19:46:39 2467402 533
>>2466964
Ни то, ни другое не нужно в настоящем ООП. Сеттеры вдвойне кринж.
Аноним 19/09/22 Пнд 20:33:54 2467441 534
>>2467402
А как ты собираешься менять состояние объекта?
Аноним 19/09/22 Пнд 20:44:02 2467448 535
>>2467441
Все объекты должны быть стейтлэсс
Аноним 19/09/22 Пнд 20:50:37 2467450 536
>>2467448
Имхо, подмена понятий stateless и неизменяемость.
Как-ты реализуешь, например, stateless connection pool?
Аноним 19/09/22 Пнд 22:32:45 2467522 537
>>2467441
Объекты, если и должны меняться (хотя в большинстве случаев объекты лучше сделать неизменяемыми), то только сами.
Аноним 19/09/22 Пнд 22:35:32 2467527 538
Аноним 19/09/22 Пнд 22:36:58 2467530 539
>>2467527
Ну то есть объекты меняют напрямую только свои поля.
Аноним 19/09/22 Пнд 22:43:03 2467535 540
>>2467530
Как они понимают, что надо поменять поля?
Аноним 19/09/22 Пнд 23:02:31 2467550 541
Как сейчас с трудоустройством в жабе? Как лучше сейчас искать первую работку? Сколько времени примерно уйдет с момента выката резюме и рассылки первых откликов до первого оффера, учитывая, что знаешь базу спринги, докеры, кафки
Действительно ли нужно, как говорит немчинский, откликаться не только на джунов, но и на мидлов?
Аноним 19/09/22 Пнд 23:21:04 2467561 542
>>2467535
Сами решают в процессе выполнения указаний других объектов, которые напрямую не говорят менять, а лишь говорят, что им нужно. Объекты сами решают, что менять, а что не менять.
Аноним 19/09/22 Пнд 23:31:21 2467570 543
>>2467561
Я все жду, когда ты напишешь про сообщения от объекта к объекту.
>которые напрямую не говорят менять, а лишь говорят, что им нужно.
Есть объект счет и объект клиент. Клиент ложит деньги на счет. Что клиенту "нужно"?
Аноним 19/09/22 Пнд 23:33:21 2467573 544
>>2467550
Ну даже в такой примитивной ситуации вместо get/set нужно сделать add/remove.
Аноним 19/09/22 Пнд 23:38:05 2467577 545
>>2467573
Блеать, ты как мой тимлид, доебываешься до лица.
Аноним 19/09/22 Пнд 23:40:37 2467578 546
>>2467577
Это не доёбка, это прямое улучшение кода. Вместо того, чтобы всегда вызывать account.set(account.get()-sum), ты вызываешь account.remove(sum). Это принцип DRY.
Аноним 19/09/22 Пнд 23:49:06 2467582 547
>>2467578
В конкретном случае соглашусь, когда метод выполняет больше одной операции. Но не понимаю, чем плохи геттеры/сеттеры в тех же дто. Иногда удобно создать дтоху с через конструктор с аргументами, а затем поменять пару полей.
Аноним 19/09/22 Пнд 23:57:17 2467586 548
Я правильно понял, что вместо MessageService.send(Message m, Destination d) надо делать Message.send(Destination d)?
Аноним 20/09/22 Втр 00:00:06 2467589 549
Аноним 20/09/22 Втр 00:09:09 2467590 550
>>2467586
Неправильно. Улучшение конечно есть, но всё равно говно. Message и Destination неразлучны с контекстом и сами по себе не должны существовать. Если ты например обрабатываешь пользовательскую команду, то код должен выглядеть так:

public void on(CommandDispatch dispatch) {
----dispatch.author().sendMessage("Петух сказал: "+write.dispatched().asString());
}

А если шлёшь email на новый год всем своим клиентам, то

myCompany.getClients().stream()
----.filter(client -> client.getLatestVisit().happenedInPast(1, TimeUnit.MONTH))
----.forEach(client -> client.email(new Email("С новым годом!")));
Аноним 20/09/22 Втр 00:10:13 2467591 551
>>2467590
Вместо new Email лучше сделать new SimpleEmail("С новым годом!")

быстрофикс
Аноним 20/09/22 Втр 00:14:15 2467592 552
>>2467590
>write.dispatched().asString()
А откуда берется write? текст сообщения в CommandDispatch должен быть, не?
Аноним 20/09/22 Втр 00:18:16 2467594 553
Аноним 20/09/22 Втр 00:27:29 2467600 554
>>2467590
Ну ты и навыдумывал хуйни. У меня был вопрос простой: что должно быть вместо сервисов.
Аноним 20/09/22 Втр 00:29:06 2467601 555
>>2467600
Это ты нихуя не понял. Я тебе ответил, что нельзя сервис просто взять и заменить. А вообще, в общем случае user.message(Message message).
Аноним 20/09/22 Втр 00:31:56 2467602 556
>>2467601
>Это ты нихуя не понял
Так значит ты хуево объяснил.
>user.message(Message message)
Откуда взялась сущность юзера? Если появятся новые способы нотифицирования, надо будет изменять класс юзера, чтобы их туда добавить? Что если перед отправкой сообщения необходимо выполнить какие-то произвольные действия, например провалидировать или поменять какое-то поле, причем список правил лежит где-то снаружи?
Аноним 20/09/22 Втр 00:38:01 2467605 557
>>2467602
>Если появятся новые способы нотифицирования,
В общем случае - да. А как иначе то, лол? Но опять же, если бы ты читал моё сообщение не жопой, ты бы увидел мой посыл о том, что отправлять сообщения лучше из контекста. Не из контекста, а из непосредственно юзера отправлять только то, что с этим юзером непосредственно связано. Например, емайл. Если не хочешь целого юзера менять - добавь к нему метод getEmailBox(), который вернёт спрятанный под интерфейсом EmailBox способ работы с сервисом емейлов (не поле emailBox, его не должно быть!).

>провалидировать или поменять какое-то поле, причем список правил лежит где-то снаружи?
Например?
Аноним 20/09/22 Втр 00:40:53 2467607 558
>>2467605
Ну то есть в моем примере это будет Destination.message(Message m). Почему не Message.send(Destination d)?
>Например?
Да банально список правил лежит в спринг проперти, которые подгружаются через спринг клауд конфиг и могут обновляться в рантайме.
Аноним 20/09/22 Втр 00:43:43 2467609 559
>>2467607
> Почему не Message.send(Destination d)?
Потому что сообщение не должно уметь отправлять само себя. Это контринтуитивно и в конечном итоге всё равно приведёт после цепочки методов к тому же Destination.message(Message message), если конечно у тебя есть хоть какая-то инкапсуляция и сообщения не могут сами добавлять себя в ящики сообщений.
Аноним 20/09/22 Втр 01:53:08 2467630 560
Как называется метод из библиотеки dropbox sdk java, который возвращает длину скачиваемого файла ?
P.S. - не хочется по библиотеке лазить... ._.
Аноним 20/09/22 Втр 02:12:40 2467636 561
Аноним 20/09/22 Втр 02:29:39 2467641 562
>>2465662

> Идею никто никогда не перепишет на С++....

Так то Jetbrains Fleet уже в превью. Он в текущем состоянии конешно даже близко не идея, но все же инициатива есть.
Аноним 20/09/22 Втр 02:35:41 2467645 563
>>2465413

> Идею, например, надо срочно переписать на C++.

Тыщу лет жили не тужили, кодили в идее и горя не знали. Нет, давай на плюсах переписывать. На плюсах, блять, идею, в 2022м.

> хочу, чтобы никто никогда не писал гуй на жабе

Ох уж эти смешные затейники со своими хотелками) Навыдумывают себе фетишей, а потом страдают от нереализованных фантазий)
Аноним 20/09/22 Втр 05:20:09 2467668 564
Аноним 20/09/22 Втр 07:09:23 2467675 565
>>2467398
Конструкторы нарушают полиморфизм.
Аноним 20/09/22 Втр 07:26:42 2467678 566
Аноним 20/09/22 Втр 08:32:36 2467700 567
Как вообще изучать юнит-тестирование? Видел, что там какой-то mock используется, но что он делает - не понятно.
Аноним 20/09/22 Втр 08:39:47 2467703 568
>>2467700
Юнит-тестированием пускай занимаются юнит-тестировщики.
Аноним 20/09/22 Втр 08:51:47 2467719 569
Внутренние классы это норм или анти-паттерн?
Аноним 20/09/22 Втр 09:06:50 2467731 570
>>2467703
А если меня не возьмут джава-погроммистом, а только юнит-тестировщиком?
Аноним 20/09/22 Втр 09:32:14 2467755 571
Вы готовы, дети?
Аноним 20/09/22 Втр 09:35:01 2467758 572
>ряяя готовьтесь самообразовываться эвридей
А в других сферах будто бы тебе не надо развиваться. Пиздец инфатилы.
https://habr.com/ru/post/687820/
Аноним 20/09/22 Втр 09:38:18 2467759 573
>>2467719
Антипаттерн, но не классический. Лучше не писать их.
Аноним 20/09/22 Втр 11:00:02 2467790 574
>>2467758
Я тоже начинал с Бейсика на Спектруме, но кому сейчас нужны такие программисты?
Аноним 20/09/22 Втр 11:10:38 2467796 575
>>2467758
Пошёл нахуй, хабрашиз.
Аноним 20/09/22 Втр 11:48:43 2467821 576
>>2467678
Это не виртуальные методы. Логика написанная в конструкторе непереопределима, поэтому классы с конструкторами не полиморфичны и должны отсутствовать в ООП языках.
Аноним 20/09/22 Втр 12:50:01 2467849 577
Приветствую, подскажите пожалуйста сколько в ДС получают джуны. Планирую проходить собеседования на удаленку и стало интересно как реально обстоят дела с уровнем зп. Планирую просить 50к после вычета налогов
Аноним 20/09/22 Втр 13:29:45 2467868 578
>>2467849
Это твой материал для стендапа? Очень смешной юмор абсурда
Аноним 20/09/22 Втр 13:44:14 2467879 579
Аноним 20/09/22 Втр 14:02:32 2467894 580
>>2467821
Так им и не надо. Ты как вообще себе видишь их переопределение, если они не наследуются?
Аноним 20/09/22 Втр 14:42:13 2467934 581
Сап, аноны, подскажите плиз, кто шарит. Я чет до сих пор не могу разобраться с секурити. Как должна выглядеть аунтификация с oauth? Вот я раньше выдавал свой jwt, в потом в фильтре его валидировал, а сейчас как? Делать свой авторизейшн сервер? Фильтр уже есть спринговом проекте oauth? Просто внятных гайдов вообще нет, только какая-то лажа с авторйзом через всякие гуглы/гитхабы
Аноним 20/09/22 Втр 15:15:15 2467960 582
Аноним 20/09/22 Втр 15:33:22 2467989 583
>>2467849
Надо просить всегда больше и ещё если занижаешь планку, то это сразу говорит о том, что не уверен в себе и значит ничего не знаешь.
Аноним 20/09/22 Втр 17:29:55 2468131 584
>>2467989
Так-то я субъективно нормально знаю,плюс петы есть. Дело в том,что я сам с Воронежа и мне 50к хватит на скромную жизнь. Также видя 300+ откликов на вакансию я предполагаю что есть мизерный шанс пройти чисто за счет жадности работодателя
Аноним 20/09/22 Втр 17:32:10 2468135 585
>>2468131
Плюс ещё мне до сих пор слабо верится что джуны в принципе могут получать 70к+ тупо за знание жизненного цикла бина, транзакций и прочих дефолтных штук
Аноним 20/09/22 Втр 17:43:42 2468150 586
>>2467607
Как сформулирована задача? Нотификация клиента по различным каналам? Как вариант в User хранить перечень каналов для нотификация конкретного пользователя, отдельно сделать сервис Notifier, который по идентификатору пользователя получает реквизиты (можно и в User это хранить) для отправки сообщения и формирует Message в соотв. со спецификой каналаи класс Sender, который отвечает за интеграционную логику.
Аноним 20/09/22 Втр 17:46:02 2468157 587
>>2468135
Не знаю жизненного цикла бина, т.к. все бины синглтоны, а значит бессмертные пока контекст поднят. Работаю мидлом.
Аноним 20/09/22 Втр 20:46:58 2468404 588
>>2468157
А если прототайп бин?
Аноним 20/09/22 Втр 20:47:55 2468407 589
Аноним 20/09/22 Втр 20:48:42 2468409 590
Аноним 20/09/22 Втр 21:03:38 2468430 591
Аноним 20/09/22 Втр 21:23:32 2468468 592
>>2468404
>>2468407
>>2468409
Не нужны. А если где и встречу, то у баелдунга разжевано для тупых, за 20 минут разберусь, что с этим мракобесием делать.
Аноним 20/09/22 Втр 21:23:51 2468469 593
>>2467821
Наличие невиртуальных мнтодов не нарушает полиморфизм

вобще словосочетание нарушает полиморфизм звучит странно, полиморфизм это не какое то правило или метод, чтобы его нарушать можно было
Аноним 20/09/22 Втр 21:43:23 2468497 594
>>2468430
ты че ебанутый? нахуй ты ранний перекат делаешь в лтс треде?
Аноним 20/09/22 Втр 22:44:42 2468562 595
>>2468497
Ну так это не обычный перекат, а перекат на новую 19 жабу.
Аноним 20/09/22 Втр 23:11:30 2468607 596
>>2468562
Текущая - 17, новая - 23 и она еще не вышла. Все что не лтс не достойно внимания.
Аноним 21/09/22 Срд 00:07:15 2468666 597
В чем разница между Spring Cloud API Gateway и Spring Cloud Service Discovery?
Оба перенаправляют запросы. Пока все что я понял это то что API Gateway это прокси,к которому обращается клиент,а он уже дальше сам решает в какой сервис отправить запрос. А Service Discovery знает где физически находится сервис и можно делать запросы не зная айпи адреса. Получается он тоже распределяет запросы. Поясните плиз
Аноним 21/09/22 Срд 00:53:02 2468706 598
Аноним 21/09/22 Срд 01:10:49 2468713 599
>>2468706
Пошёл нахуй со своим новым тредом.
Аноним 21/09/22 Срд 01:15:06 2468717 600
>>2468713
Как будто это мой тред. Я хотел тебе помочь, чтобы тебе ответили быстрее, а ты меня послал. Не стыдно?
Аноним 21/09/22 Срд 01:25:08 2468722 601
>>2468717
Помогай в новом треде
Аноним 21/09/22 Срд 01:26:30 2468724 602
>>2468706
там первые 500 постов будет шарпосрач и его вопрос потонет в этом потоке говна
Аноним 21/09/22 Срд 01:47:49 2468735 603
Аноним 21/09/22 Срд 10:22:18 2468885 604