Этого треда уже нет.
Это копия, сохраненная 26 января 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
123.png282 Кб, 815x981
Java #22 КОВИДНЫЙ thread /java/ /java/ 1743038 В конец треда | Веб
Прошлый >>>>1668733 (OP)

Продолжаем сидеть на карантине, отныне и на java есть удаленка

Q: Поздно ли вкатываться в айти в 20/30/40/100 лет?
А: А хуй его знает, с этим ковидом

https://github.com/random76/Java-Thread/wiki
https://github.com/qqqlll/Java-Thread/wiki
sage 2 1743047
Жаба позорная.
3 1743051
>>1743021 →
Это на мидла тестовое, я ниже кидал на джуна. Там проще, без шифрования и всякой хуйни.
image.png1,1 Мб, 853x1024
4 1743053
>>43038 (OP)
Маняме сраное
8405a18.jpg66 Кб, 840x832
5 1743059
Я ОБЯЗАТЕЛЬНО ВКАЧУСЬ В 20 ЛЕТ БЕЗ ВЫШКИ
sage 6 1743068
Репорт.
7 1743088
>>43053
Ну в прошлом треде многие проголосовали за эту пикчу
8 1743092
>>43068
Не нужно. Это не рандомное онэмэ.
9 1743107
>>43059
Не вкатишься, уважающий себя тимлид-джавист не станет тратить время на собеседование человека без образования.
10 1743120
Аниме - это хорошо.
11 1743200
По совету проверенных камрадов начал читать официальную мурзилку по Spring Data. Читаю-читаю, но до сих пор не могу понять.. а как мне это все в psvm запустить? Ну вот есть у меня User, UserRepository и UserService. Как мне затестить UserService?
12 1743201
>>43200

> официальную мурзилку


Квадратный круг.
13 1743203
>>43201
Reference murzilka.
14 1743265
>>43200

>>мне это все в psvm запустить?


через спринг бут, например

@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}

>>Как мне затестить UserService?


Создаешь юнит тест через junit и тестишь, в чем проблема то? Репозитории в тесте сервиса мокаешь через mockito.

class UserServiceImplTest {
@InjectMocks
UserServiceImpl userService;

@Mock
UserRepo userRepo;

@BeforeEach
void init() {
MockitoAnnotations.initMocks(this);
}

@Test
void loadUserByUsername_success() {
User mockUser = new User(){{
setUsername("username");
setPassword("pass");
setEmail("ma\|rilANUSmo3VailPUNCTUMpejUp");
}};
when(userRepo.findByUsername(anyString())).thenReturn(mockUser);

UserDetails user = userService.loadUserByUsername(anyString());

assertNotNull(user);
assertEquals(mockUser,user);
}

>>Читаю-читаю, но до сих пор не могу понять


Ты спринг кор или спринг бут то уже освоил?
14 1743265
>>43200

>>мне это все в psvm запустить?


через спринг бут, например

@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}

>>Как мне затестить UserService?


Создаешь юнит тест через junit и тестишь, в чем проблема то? Репозитории в тесте сервиса мокаешь через mockito.

class UserServiceImplTest {
@InjectMocks
UserServiceImpl userService;

@Mock
UserRepo userRepo;

@BeforeEach
void init() {
MockitoAnnotations.initMocks(this);
}

@Test
void loadUserByUsername_success() {
User mockUser = new User(){{
setUsername("username");
setPassword("pass");
setEmail("ma\|rilANUSmo3VailPUNCTUMpejUp");
}};
when(userRepo.findByUsername(anyString())).thenReturn(mockUser);

UserDetails user = userService.loadUserByUsername(anyString());

assertNotNull(user);
assertEquals(mockUser,user);
}

>>Читаю-читаю, но до сих пор не могу понять


Ты спринг кор или спринг бут то уже освоил?
15 1743282
>>43203

>>мурзилку


Откуда это слово то пошло? Звучит как то пренебрежительно. Выходит анон считает бумажную книгу от rackt более авторитетным источником, чем любая официальная дока в интернете?
К примеру https://tools.ietf.org/html/rfc7519 или https://docs.oracle.com/en/java/index.html это тоже "мурзилки"?
16 1743308
>>43265
Спасибо большое! Сейчас буду пробовать запускать.

>Ты спринг кор или спринг бут то уже освоил?


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

>>43282
Мурзилка - это говняк статьи/курсы. "Справочная документация" звучит как-то сложно, поэтому пусть тоже будет мурзилкой.
17 1743338
>>43308
Его наверное можно и автономно использовать, но лучше поставь себе спринг бут и не еби мозг себе и окружающим. Там гайд по хелловорлду на спрингбуте на 1 страничку. Зато у тебя сразу все заработает без регистрации и смс без конфигов в хмл. Ну и спринг тест заодно подключи - там junit и mockito уже есть.
18 1743361
bump
19 1743363
Эксель, стату!
20 1743386
>>43338
Окейчики.
21 1743395
Как сейчас правильно подключают субд к джаве? Пишу в Exlipse, юзаю MySQL. Может, для этого нужно еще что-то устанавливать, мб мавен(не ебу, если честно)? Хотелось бы изучать способ, который часто используют именно сейчас.
22 1743405
>>43395
Если просто голое джава-приложение, то в мавене драйвер базы данных в зависимостях и все. Дальше с jdbc работай.
23 1743413
>>43405
Спасибо.
24 1743467
>>43038 (OP)
Вылезли из говна?
25 1743511
>>43467
Goвна? Кто-то вляпался (в основном, питонщики, пхпшники и макакаскриптеры), кто-то не лез.
26 1743521
Как изменить имя файла в объекте File (или Path) и отдать его дальше без использования файловой системы?

Пользователь сохраняет файл, я добавляю к имени UUID и сохраняю, а теперь нужно этот файл прочитать и отдать ему с исходным названием, отрезав лишнюю часть с UUID. По гайдам его надо через File или Path копировать или переименовывать, но мне эти файлы на диске не нужны, записывать их в систему/копировать/удалять излишне. Могу конечно в ResponseEntity контролера просто указывать другое имя, но логика не должна утекать из сервиса в контроллер. Это все на спринге само собой.

Как это все реализовать? В голову приходят мысли просто сохранять исходное название отдельно и присылать его вместе с файлом от сервиса контроллеру. Но как то это костыльно выглядит. Должно же быть достаточно элегантное решение. монгу пока не пробовал, возможно она станет решением проблем
image.png40 Кб, 763x417
27 1743530
>>43363
Я обычно после 700 пощу. Раз тред только начался, построил по последним 6 тредам.
28 1743545
>>43363
Ну и небольшой бонус, пока двощ опять не начали дудосить.
Самый ассоциирующийся с бекендом язык у нас по-прежнему PHP, аниме в /pr/ обсуждать в целом не любят, а о работе чаще всего вспоминают пхпшники и макакаскриптеры (искать просто слово "работа" нельзя, ибо оно часто юзается в значении "помогите, почему X не работает").
29 1743679
Сап, пытаюсь начинать хэлоуворлдить на джава.
Поясните плес ньюфагу, что происходит под капотом с хэшами объектов, когда с ними оперируют структуры коллекций для совершенствования поиска. Правильно ли я понимаю, что даже разные хэши попадают в один "сегмент" (bucket) пула хэшей (или как оно там может называться, хз, я не нашел где изучить, потому и спрашиваю)?
В чем вообще прикол домножения на простое число вроде 31 в процессе переопределния hashCode()? все что мне в голову приходит, это нужно чтоб размазать диапазон значения хэшей пошире, например с 0...10 до 0...310. Но если складывание в бакеты происходит по принципу остатка от деления (хз, так ли это), то там выходит есть какое-то требование, чтоб бакетов было строго не равно числу, используемому при домножении? (иначе домножение просто смысл теряет, все равно все будет "падать" в один и тот же сегмент).
Хз, кажется пояснил свои мысли как даун, но может кому-то будет понятно.
30 1743684
>>43679

>даже разные хэши попадают в один "сегмент"


фикс: правильнее сказать могут попадать
31 1743726
>>43679

>даже разные хэши попадают в один "сегмент" (bucket)


Ну конечно попадают, куда им еще деваться, когда домен хешей int, а бакетов всего 16 по дефолту?
Взять .hashCode() у объекта это первая стадия, далее хеш приводится к индексу массива (номеру бакета) внутренней функцией hash, которая тоже что-то там гарантирует, типа что не будет больше чем 8 элементов в бакете при нормальных условиях (uniform распеределении хешей). 8 там это такое магическое число, при котором связный список переходит в дерево (нововведение в Java 8).

>В чем вообще прикол домножения на простое число вроде 31


Существуют и другие числа. Да, чтобы растянуть хеш, и чтобы вычислялось относительно просто. Подробнее хотя бы тут:
https://stackoverflow.com/questions/299304/why-does-javas-hashcode-in-string-use-31-as-a-multiplier
32 1743755
>>43726

>когда домен хешей int, а бакетов всего 16 по дефолту


ну вот это вот как раз и хотел увидеть достоверно. Потому что во всяких популярных статьях для вкатывальщиков иногда указывается, что назначение всей затеи просто дать возможность "искать не по набору из 100 полей, а только по хэшу". И только если есть коллизия там уже вызвать equals. Если взять это на веру, то быстрее будет даже если бакетов 4g штук, ведь искать все равно надо только во одному значению int.
33 1743801
>>43545
Давай по слову спасиб
34 1743825
>>43755
Идея хеш-таблиц в том чтобы для каждого хеша приведенного к номеру бакета в бакете был только один элемент. Т.е. в идеале - один бакет = один элемент. Причем equals нужно вызывать в любом случае даже если всего один элемент. А любая коллизия это зло. Число бакетов есть capacity таблицы. Начинаем с 16 с загрузкой в 0.75, т.е. при достижении 12 элементов в таблице (даже если они все в одном бакете изза неудачного хешкода) таблица расширяется и элементы перераспределяются (ре-хеш). Операция дорогостоящая, поэтому важно понимать как все работает внутри и какие параметры выставлять в конструкторе.
спасиб.png21 Кб, 476x284
35 1743836
36 1743876
>>43726
Так по ссылке вообще ничего нет, кроме ссылки на Блоха, где он и сам просто говорит "так нада".
>>43825
нихрена не понял. так сколько в итоге бакетов? или это в какой-то момент вычисляется, еще и динамически меняется по мере роста хэшмапы?
37 1743881
>>43876

>еще и динамически меняется по мере роста хэшмапы


this
38 1743944
>>43876

>Так по ссылке вообще ничего нет, кроме ссылки на Блоха, где он и сам просто говорит "так нада".


А чего именно ты ждал? "Так надо" потому что это уже лет 30 назад было протестировано вместе с другими числами, а потом доказано теорией - нечетное простое число, хорошо расширяет базовое число и относительно просто вычисляется (в две операции - сдвиг и вычитание).

>нихрена не понял. так сколько в итоге бакетов?


Совершенно верно, они расширяются при необходимости (но не уменьшаются, поэтому нужно пересоздавать хешмапу сли много добавил а потом много удалил - она все равно места много жрать будет поюзанная но пустая). Бакеты находятся в прямой зависимости от количества элементов в коллекции, и как я выше сказал - идеально чтобы одному элементу свой бакет. Дефолтная хешмапа дачинает с 16ю бакетами и лоад фактором в 0.75, т.е. 12 элементов изначально можно добавить безопасно до первого ре-хеша.
39 1743987
>>43511
16 гигабайт на микросервис должно хватить
image.png1,9 Мб, 1280x853
40 1743991
>>43545
бееекенд
41 1744021
>>43545
Самый анимешный тред, считаю это достижением.
15941184304200.jpg43 Кб, 849x560
42 1744141
Увидел такой говнокод в одном треде. Задача состоит в том чтоб при целочисленной делимости на 3 выводить fizz, на 5 - bazz. Если то и другое - то и то и другое. Такое вопрос: а можно как-то вместо if внутри лямбды "отпараллелить" хз как это нормально сказать стрим и там сделать filter? или такого не бывает?
И еще, если запустить три раза такой стрим, но с filter + forEach, то как-то возможно синхронизировать их исполнение, чтобы они по одному элементу пропускали, а потом вставали на задержку, пропуская следующий стрим, и так далее? что-то вроде yield-return в шарпах.
как вообще такое решить красиво на стримах?
44 1744200
>>44189

>https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition


Самое смешное, что этот монстр падает с NPE.
sage 45 1744202
>>44141

> IntStream.rangeClosed(1, 100)


> .mapToObj(i -> {


> if ((i % 15) == 0) return "fizzbuzz";


> if ((i % 3) == 0) return "fizz";


> if ((i % 5) == 0) return "buzz";


> return null;


> })


> .filter(Objects::nonNull)


> .forEach(System.out::println);

46 1744212
>>44202
Это шляпа какая-то же. Казуальщина какая-то
>>44189
Вот это второе пиздатое.

Правда, про возможность параллельных стримов так никто и не сказал. Хотя я вроде погуглил что они так не умеют.
47 1744213
>>44202
Там если не делится, возвращают это же число, а не налл.
48 1744214
>>44200
Как любое легаси
https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition/issues/434 - вот фикс на который положили хер
49 1744217
>>44213
как тогда это сработает? (из второго примера в том посте)

public static String fizzBuzzInJava8(int number) { String result = Optional.of(number) .map(n -> (n % 3 == 0 ? "Fizz" : "") + (n % 5 == 0 ? "Buzz" : "")) .get(); return result.isEmpty() ? Integer.toString(number) : result; }
50 1744219
>>44213
А, я в шары долблюсь. там же еще проверка на налл дописана
51 1744222
>>44217
Пост говно, там самая мякотка в последнем комменте
sage 52 1744223
>>44212

>Это шляпа какая-то же. Казуальщина какая-то


Ну вынеси map в метод. Можно через peek сделать, но это херовый метод, потому что peek может и не вызываться.

>>44213
Там mapToObj
53 1744232
>>44222
Какая-то сложная пиздецома для меня. Я второй день стримы только пробую.
55 1744304
нихуя не понял
56 1744306
>>44189

>>https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition


Зачем интерфейсы хранить отдельно от реализации? Неудобно же.
57 1744318
>>44234
Вот ты смеешься, а ведь это нихера, блять, не смешно.
https://www.securitylab.ru/news/509722.php
58 1744396
>>43521
Где файл то хранится? Куда его сохраняют? В каком виде собираешься отдавать? Ничего не понятно.
59 1744409
>>44318

> blocklist вместо blacklist


Весело. Block lives matter.
60 1744426
>>44318
Муськой уже никто не пользуется. Мы за слоника.
61 1744436
>>44306
Ты еблан?
62 1744907
сап анонасы, подскажите, как я могу создать свои флаги для java maven? скиньте ссыль желательно на русском

мне нужно менять значения нескольких переменных перед прогоном тестов
63 1745087
>>44907
Выражайся четче, что тебе надо задать флаги JVM которая запускает Maven. Или флаги JVM которая тесты запускает?

Если второе, то у surefire плагина надо задать <argLine> вот пример
http://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html
64 1745111
>>45087
мне нужно создать свои дополнительные флаги для команды mvn clean test, которые будут менять значения переменных(напр. адрес хоста)
65 1745142
computer-programming-anime-programming-language-thread-anim[...].jpg107 Кб, 800x876
анонче 66 1745154
господа паграмисты 300к/наносек
решил сделать для себя небольшой пет-проект в виде календаря/таск менеджера под андройд.

Реквестирую подходящую литературу по жаба фуфыкс чтобы всё это по человечески реализовать.

Есть небольшие познания в джава уровня основ языка, просто хочу сделать что-то для себя, мотивация есть, а вот с источниками знаний проблемы, посему и создаю данный тред
67 1745164
>>45154

> фуфыкс


Принципиально? Пока ты будешь его изучать и разбираться, как его запустить на андроиде, 100 раз уже успеешь наформошлёпать нативными средствами андроида.
Если не шаришь в самом андроиде, вот пара мурзилок:
- https://startandroid.ru/ru/uroki/vse-uroki-spiskom.html
- http://developer.alexanderklimov.ru/android/
68 1745195
>>45164
спасибо огромное!
69 1745199
>>45111
MAVEN_OPTS или -D в помощь
70 1745233
Подскажите книжку про паттерны с примерами на джаве.
71 1745257
>>45233
head first design patterns
72 1745263
Почему Eclipse стандартно использует J2SE-1.5 в мавен проекте? (Я сейчас не спрашиваю, как ее поменять, если надо, сам найду). Нагуглил, вроде это версия 2004 года, другое название 5.0. Но я скачивал все последних версий, почему и зачем так?
73 1745267
>>45263
А это не эклипс, а сам мавен.
image.png88 Кб, 986x615
74 1745269
Нихуя себе.
75 1745274
>>45267
Хорошо, но мавен у меня тоже последней версии. Кстати, еще вопрос, тот мавен, что в IDE и тот, что я установил в PATH один и тот же? Не пробовал до установки создавать мавен проект.
76 1745276
>>44396

>>Где файл то хранится? Куда его сохраняют?


На жестком диске

>>В каком виде собираешься отдавать?


Как обычный файл. В том же виде, в котором его загрузили.

В итоге стал передавать как массив байтов, File/Path как я понял это просто ссылка и данных в себе он не несет, а значит его передавать контроллеру бессмысленно. Имя файла хранится в базе данных, и когда нужен файл - достаю файл с диска, перегоняю в массив байтов, массив и название из базы засовываю в дто и отправляю контроллеру, а тот эти байты перегоняет в Resource, прикрепляет название и отдает пользователю.
В итоге файл который пользователь скачивает имеет тоже название что и при загрузке на сайт, но на физическом носителе на серваке он хранится под своим уникальным именем вроде f467026a-bbd7-409f-846d-492793c70535.pdf
77 1745281
>>45274
Это и в последней версии так.
http://maven.apache.org/plugins/maven-compiler-plugin/
Полагаю, это поведение по умолчанию не меняют, чтобы что-то не сломалось.

> один и тот же


Не юзал эклипс, но почти наверняка он тащит свой мавен сам. И у тебя два разных мавена в системе.
78 1745287
>>45269
У быдлокодеров работа встала!
79 1745291
>>45281
Спасибо.
80 1745314
>>45257
Можешь дать пару слов комментариев о ней? Просто я начинал читать хедферст по самой джаве и чуть не блеванул от стилистики книжки.
81 1745316
>>45314

> Можешь дать пару слов комментариев о ней? Просто я начинал читать хедферст по самой джаве и чуть не блеванул от стилистики книжки.


Я не тот чел, но скажу, что хедферст по паттернам на удивление заебись написан. В отличие от говна по джаве
82 1745321
Раньше в джаве все API были постпроены на наследовании. Например, экстендишься от предоставляемого класса, а дальше уже реализуешь свои велосипеды (свинг, сервлеты). А сейчас что? Просто методы дергаем как в процедурном.
83 1745347
>>45321
Кто тебе сейчас, мешает наследоваться и реализовывать?
hf.JPG137 Кб, 727x944
84 1745351
>>45314
Эрих Гамма и Ричард Хелм говорят заебись.

Выбора у тебя не так много - банда четырех по хардкору на плюсах.
Хед фест - картинки и комиксы вперемешку с кодом и объяснением.
Вроде как еще есть Гранд - Шаблоны проектирования, тож на джава, но его не читал, вроде как что то среднее между 1 и 2.

Вобщем читай хед фест - если потянет блевать хотя конкретно эта книга от ХФ норм, как уже отмечали выше - переключайся на Гранда.

А потом почитай почему половина этих патернов уже стали антипатернами.
85 1745352
>>45314

> чуть не блеванул от стилистики книжки.


есть такое. но справедливости ради, разжевано в ней все достаточно годно. Хоть и подача как для даунов. не сильно-то и блевотнее того же Файна.
86 1745355
>>45233
Spring, все паттерны проектирования. Страниц 50 осилил, вроде норм.
В прошлом треде её у анона увидел.
6013495492.jpg166 Кб, 1062x1500
87 1745359
>>45355
Ты про пикрелейтед? Судя по имени и издателю самая рассово верная книга по паттернам.
88 1745459
А вы бы как решили?
https://itnan.ru/post.php?c=1&p=504638
89 1745572
>>45355
Но я совсем не знаю спринг.
db6ecd883574ed39767929a56f93024f[1].jpg72 Кб, 333x500
90 1745575
>>45351
https://refactoring.guru/ru/design-patterns
по запросу паттерны на джава - первая ссылка на руссом сабж. Там сайт и книга.
Стоит читать?
91 1745636
Поясните ньюфагу, каким образом вызовы, вроде Thread.sleep(), воздействуют именно на поток, из которого вызваны, если они static в классе Thread? В статическом методе же невозможно получить ссылку на нестатический контекст, в том числе на this. Это какая-то магия, о которой надо не спрашивать, а просто пользоваться, или я идиот, и чего-то не понимаю в static-семантике джавы?
image.png282 Кб, 1073x854
92 1745648
>>45575
Лол, отсылка на рекламу макинтоша 1984 года.
93 1745656
Сейчас бы читать талмуды по паттернам. Вы, наверное, и про регекспы и ООП читаете каждый раз по 1К страниц.
94 1745662
>>45636
Это всё магия исполняющей среды, в данном случае JVM, статик тут не при чём. Например, когда ты вызываешь метод из какого-то потока, JVM ведь тоже как-то понимает, что запускать его нужно именно в том потоке.
95 1745681
>>45662
Ну, просто эффект от выполнения чего-то вроде Math.pow(2,2); будет одинаков для любого потока, потому что никакой код не использует контекст вызова. Хотя, безусловно, вызов делается из какого-то потока. Но вызов Thread.sleep() всякий раз имеет результат, зависящий от вызывающего потока. Еще можно было бы понять, если бы потоки имели каждый свой heap, но, насколько я понимаю, треды эксплуатируют все одну кучу своего процесса. Как в одной куче могут быть разные статик-элементы для класса Thread?
96 1745685
>>45681
В общем случае не одинаков. Среда должна знать, в какой поток возвращать результат, к тому же бывают ThreadLocal-переменные.
"Статик-элементы" одни и те же, это сам sleep понимает, какой поток его вызвал.
97 1745686
>>45662
Олсо, все что в голову приходит, это что имеет место какая-то особенность реализации, что эти классы static только для пользователя, а для исполняющей среды "не совсем static". Только в чем смысл этого? почему не вызывать sleep из под самого треда this.sleep()? чем так было бы хуже?
98 1745688
>>45656
Про регэкспы прочитал страниц 50, но книжку на 1к скачал.
>>45648
Так че, говно ресурс или нет? Картиночки мне понравились.
99 1745691
>>45681

>если бы потоки имели каждый свой heap


Каждый свой TLAB имеют.
100 1745693
>>45321
Это же прекрасно. Всегда знаешь, где, что и чем инициализируется, всегда можно в одном классе юзать несколько апишек. А при наследовании у тебя что-то неявно вызовется и ёбнет, и долго будешь искать, почему у тебя при создании объекта эксепшен.
Пришлось как-то дебажить один код с целым деревом абстрактных классов и постоянно прыгать по ним, пытаясь понять, куда дальше пойдёт вызов. Как же я проклинал того, кто это придумал.
101 1745711
>>45691
Погуглил немного. В целом, ясно. Думаю для вкатывальщика это слегка глубоковато и пока можно не морочиться над такими тонкостями. Спасибо за подсказки.
102 1745832
>>45459
Чувак "вспылил" в относительно стрессовой ситуации и не осилил условия задачи, хотя в примерах было показано что на входе и что на выходе.
Итого, выглядит это как: "Вы мне всё тут распишите досконально, а я уж вам наверчу архитектуру! Да с паттернами! Да с женериками!". А бизнес не волнуют паттерны, его волнуют деньги, которые принесёт автоматизация процессов. И, зачастую, задача инженеров, начиная с senior, а уж тем более staff, понимать и выяснять требования заказчика. И ублажать его, ага. А что поделать.
image.png48 Кб, 734x663
103 1745931
>>45686

>this.sleep()?


Можно. Ничем не хуже, только писать больше. Конечно есть отличия, гугли если интересно "java 8 wait vs sleep", но для тебя результат будет аналогичен.
104 1746112
В джаве троичная логика. Boolean может быть true false и null.
Безымянный3.png18 Кб, 598x491
105 1746158
Что-то я тупой. Я прописал это в зависимостях, как теперь это подгрузить? Или это надо самому скачивать и в папку зависимостей засунуть?
106 1746197
>>46112
Правда, при вычислении выражения будет NPE, а не true/false/null.
107 1746198
>>46158
Просто запусти сборку, мавен сам увидит, что чего-то не хватает локально, и скачает.
mvn clean package.
108 1746201
>>46198

>запусти сборку


Тогда уж mvn clean compile
109 1746209
>>46201
Ты используешь бут, но не хочешь получить жарник?
110 1746210
>>46209
Ты ебобаный? Челу надо зависимости скачать, а не сборку запустить.
sage 111 1746217
>>46210
Мда.
112 1746292
Как с кукумбером одновременно создать класс для запуска спринг тестов и тестов без спринга?
113 1746304
Если в soursepath и classpath имеются одинаковые классы, то JDK не компилирует, а использует готовый класс? Тогда скомпилированные bin/ классы будут иметь не полный пакет, и, если, мы, допустим, вынесли некоторые ранее скомпилированные классы в отдельную папку и указали в classpath, то запустить сможем только указав в classpath директорию с этими классами?
114 1746413
Парни, вот смотрите, есть такая штука как Groovy. Там есть много интересных вещей, но, в основном, я вполне могу и без них обходиться. Но ещё со времён питона и его f-строк я никак не могу отделаться от мысли, что это куда удобнее, чем конкатенация. И в груви они есть - GStrings-класс, который делает как раз то, что мне нужно.
Могу я как-то использовать этот класс без компилятора груви? Или может есть отдельная библиотека какая-то для такого синтаксиса строчек? Или, там, в недрах Гуавы есть что-то похожее?

Синтаксис списков и for (i in 1...10) тоже конечно очень приятны но без них моя жизнь сильно хуже не станет, учитывая существование стримов.
115 1746422
>>46413

>конкатенация


А как же String.format()
116 1746428
117 1746432
>>46413
Где использовать, в джаве? Никак, только String.format() или java.text.MessageFormat.
А этого >>46428 пидора не слушай.
118 1746433
>>46428
О, я помню твою графическую прогу с шарами в треде.
119 1746436
>>46413

>Могу я как-то использовать этот класс без компилятора груви?


Нет.
120 1746439
>>46433
Он сюда периодически приходит и спрашивает, какую б либу написать.
121 1746443
>>46439
Я в курсе и че?
122 1746452
>>46443
Да.
image.png1,2 Мб, 642x751
123 1746455
ьдд.PNG28 Кб, 815x281
124 1746506
Что это значит преобразовать речь в байт-код?
125 1746538
>>46506
Обозначить некоторое подмножество английского языка как формальный язык для описания байт-кода. Например:
The first byte is two hundred two
The second byte is two hundred fifty-four
The third byte is one hundred eighty-six
The fourth byte is one hundred ninety

Написать тулзу для преобразования в байт-код не составит труда.
анонсмог.png36 Кб, 1899x977
126 1746837
Обосраться, собрал по туториалу чат, и он заработал! Радости нет предела, моя первая программа на жабе!
127 1746903
>>46197
Троичная логика по жававски: true/false/NPE
128 1746940
>>46837
Жава не про это
129 1746988
>>46837
Скинь туториал.
130 1746990
>>46903
NPE можно катчнуть и будет 3 порядка выполнения.
131 1746998
>>46988
Загугли название чата.
132 1747013
>>46837
Стиль один-в-один гугловский, буээээ.
133 1747031
>>46990
Just as planned
134 1747074
Поменял зависимость
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
С 8.0.18 на 8.0.20, запустил компиляцию mvn clean compile, но идея выводит предупреждение "Duplicating managed version 8.0.20 for mysql-connector-java". Что можно прописать, чтобы этого не было?
135 1747146
>>46990
>>47031
Я недавно делал проект, где надо было взаимодействовать с каким-то сервисом написанном на петухоне.
Приходил массив с цифрами, он мог содержать null, он мог быть null, он мог быть пустым, он мог содержать хуйню вместо цифр, блядь, это такой пиздец всё это говно ловить было.
136 1747151
>>47146
Динамикодрисня как всегда не меняется.
137 1747398
Джаваны, как с помощью стримов отсортировать какие-то объекты, у которых есть два поля, удовлетворяющих Comparable, сначала по одному полю, а потом по второму, не нарушая первой сортировки. Например <имя шлюхи, размер сисек, цена>:
Маша, 2, 1500
Даша, 3, 1500
Вера, 2, 1200
Зина, 4, 500
Корзина, 3, 1200
___должны отсортироваться так:
Вера, 2, 1200
Маша, 2, 1500
Корзина, 3, 1200
Даша, 3, 1500
Зина, 4, 500
138 1747405
>>47398
О, тут уже улучшают ту задачу на шлюх. Потом из этого вырастет энтерпрайзное приложение и кто-то разбогатеет.
139 1747418
>>47405
удобно оказалось со шлюхами, у них много параметров можно придумать за 10 сек.
Олсо, задача конечно не сложная сама по себе. Вопрос скорее правильно должен звучать, как это сделать наиболее кратко, за один проход стрима например
140 1747425
>>47398
просто напиши компаратор не лямбдой, а создай класс который имплементит интерфейс Comparator в котором переопредели метод compare так, чтобы он сравнивал по двум полям
141 1747428
>>47398
thenComparing
142 1747438
>>47425
>>47428
Ну, про thenComparing компаратора я знаю. Меня скорее интересует это с точки зрения мощности стримов как инструмента. Окей, пусть надо по трем полям это сделать.
Можно ли например отсортировать сначала по одному полю, потом как-то собрать куски сортировки в Listы, в каждом из них зародить собственные стримы, не выходя из внешнего, и сортировать уже там, и так далее, а потом как то выйти и все это обратно разобрать в один List. Что-то такое. Учитывая что все там как-то по ебанутому работает, с конца выражения и вот это вот все, мне не хватает понимания их работы чтоб понять можно ли так в принципе
143 1747440
>>47438
Ты че дурак?
144 1747441
>>47440
ну да.
145 1747446
>>47438
Иди лисп уч
gose344ewe.jpg120 Кб, 868x667
146 1747448
>>47440
Предложи решение или заткнись нахуй
147 1747450
148 1747459
>>47450
через thenComparing любой осел сделает. ты в шары что ли долбишься, я же написал что интересует не решение само по себе, а возможность так написать цепочку Streamов без потомСравнение
149 1747463
>>47459
Ну напиши, дебил
ПОтом расскажи, зачем ты это сделал и чего добился
150 1747480
>>47398
>>47405
Проорал. Осталось написать энтерпрайз эдишн.
Это я в прошлом треде придумал эту хуйню.
151 1747490
>>47418

>за один проход стрима например


Ты бы хоть почитал про стримы для начала, про промежуточные и терминальные операции, всю эту хуйню.
Если коротко и с учётом, что пишу я это в пятницу и в говно, то вот допустим государство локализовало проституцию, и тебе надо посчитать цену любой шлюхи после ндс.
Т.е.
stream().map( whore -> whohre.getPrice() 1.2).findAny.get()
не будет каждый прайс перемножать, перемножится только первый и его же тебе отдаст.
>>47438

>как-то собрать куски сортировки в Listы


groupingBy()?

>в каждом из них зародить собственные стримы


У стримов есть метода parrallel() или как-то так. Если ты хочешь параллельно что-то хуярить. Но это мутная хуйня, вроде у Блоха упоминалось, что для того, чтобы распаралелливание начало приносить профит по производительности надо чтоб число элементов
число операций было больше 100к или как-то так. Смысла в этом мало, сейчас мощности процессоров такие, что мозга ебать многопоточностью смысла мало. Всё скорее упрётся в пропускную способность интернет канала и HDD/SSD, чем процессор.
Скорее ты будешь SQL запрос оптимизировать, чем распараллеливать что-то.
152 1747498
>>47490

>Ты бы хоть почитал про стримы для начала, про промежуточные и терминальные операции


и так все это знаю и понимаю.

>надо посчитать цену любой шлюхи после ндс.


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

>Но это мутная хуйня


Бля, но я бы и не стал тут спрашивать как хэлоуВорлд написать

>пишу я это в пятницу и в говно


кстати, заметно
тем не менее, блаадарю за попытку. я понял что это говно достаточно сложное, чтоб никто на практике не стал это делать
153 1747505
>>47498
Так а чё ты спрашиваешь тогда, раз понимаешь?
thenComparing, тебе выше написали.
Жаба там сама всё оптимизирует. Это не тот язык, где надо этим голову ломать. Хуярь бизнеслогику, делай вэлью.
Капитализм, счастье, заебись.
image.png84 Кб, 864x732
154 1747535
>>47398

>Можно?


Конечно, но тебе не понравится процесс. Удобнее использовать предназначенные для этого инструменты, которые аноны выше написали.
155 1747596
>>47535
Слушай, не дай бог тебя встретить в темном переулке.
image.png81 Кб, 970x769
156 1747640
>>47596
Ахах, приму как комплимент, спасибо :3

>>47418
>>47535

>один проход стрима


Нда, не учел этого факта. Тогда так.
image.png86 Кб, 1028x731
157 1747646
>>47640
Или более типобезопасно вот так.
158 1747739
>>45233
Применение шаблонов Java Стивена Стелтинга
refactoring.guru для каждого шаблона есть примеры на разных языках, в том числе и на Java
159 1747766
хай, кто-нибудь знает способ на халяву юзать богоподобные айдиишки от джетбрейнса?
160 1747791
>>47766
то есть вместо того, чтобы набрать в поисковике какого-нибудь торрента-сру ровно одно слово, ты сначала приперся сюда, я правильно понимаю?
161 1747794
>>47791
я спрашиваю про активацию, то есть не крякнутую штуку, которая блочит тебе обновления, а полноценный прикол от джетбрейнса
162 1747795
>>47794
тогда тебе надо быть студентом. там есть какая-то поддержка для них, с выдачей во фрии анлимит-версий
163 1747796
>>47795
то есть иначе никак? =(
164 1747804
>>47796
ну а как ты хотел? как, блять, может быть одновременно и спизжено, и не крякнуто? я только не понимаю нахуя тебе обновления эти. ты что ли из тех клоунов которые любой софт на своем пк держит в состоянии полного максимума версии?
165 1747806
>>47804
ой какой ты неприятный. зачем отвечать вообще если ты такой токсик шмоксик?
166 1747814
>>47806
еще варик есть - отсосать кому-то у кого лицуха уже есть. ты вроде похож на гея своими манерами. как тебе такой совет?
167 1747823
Не умеешь агент впердолить - сиди на эклипсе с плагинами.
168 1747828
>>47823
да вроде есть раздачи где все вшито уже
169 1747832
>>47828
Я не буду идешку из-под васяна подбирать.
170 1747834
>>47832
То есть "впердолить агент" это нечто, не связанное с торрентом и вообще пиратками?
171 1747892
Потерял свою мурзилку по java, помогите аноны чем-нибудь годным.
172 1747911
>>47892
А, не надо, откопал бульдозером в прошлом треде.
173 1747927
>>47911
кинь плес. тоже надо
175 1748004
>>47957
Гослинг Java 1.0.2 лучше.
176 1748020
>>47957

> вертекс


чет дрисня какая-то, не? вразнобой всего натыкано, про обобщения вообще ничего не увидел
177 1748023
>>47814
этот гей мог бы тебя разъебать по фактам, такие двачерки как ты отлетают за одно сообщение плакать в подушку, но я просто сказал тебе, чтобы ты мне не писал
178 1748026
>>48023
Ну-ка съебал в быдлач, быстро-решительно.
179 1748028
>>48026
ты живешь в этом треде? у тебя всю жизнь вкладка открыта, нолайфер?
180 1748029
>>48028
Тебя ебать не должно.
181 1748032
>>48028
А ты треды в "Избранное" добавлять не умеешь, лайфер?
мимо
182 1748035
>>47766
https://t.me/jetbrains_tools_cracks
Найти не так уж и сложно
183 1748037
>>48004
Нет, фасоль Ява лучше.
184 1748105
По идее в репозиториях должна быть минимальная круд-логика. А если мне надо описать лютый запрос с джоинами, какой шаблон для этого использовать? Те же репозитории?
185 1748108
>>48105

>По идее в репозиториях должна быть минимальная круд-логика.


Че ты высрал?
186 1748112
>>48108
Че не так?
187 1748113
>>48112
Да хуйня какая-то.
188 1748115
>>48113
Не хуйня.
189 1748117
>>48115
Хуйня. Ты на спринговые репозитории из одного интерфейса насмотрелся что ли? Под капотом там такие же лютые запросы через JdbcTemplate или че-то подобное.
190 1748120
>>48105
Вот пример репозитория из реальной жизни:
https://pastebin.com/4N7Z4Hr9
191 1748121
>>43038 (OP)
Посоны есть пример вкатывания мидлов/синьоров в джаву с другого бекенд стэке? Это вообще имеет смысл? Хочется сложности, нагрузок и денег.
192 1748122
>>48120
Нет, это прокси ебаное. Вся логика внутри repository, и ее тут не видно.
193 1748125
>>48117
Но сами-то репозитории предоставляют легковесные методы, типа получить шлюху по имени, получить шлюх по ценам. А если мне надо написать запрос на получение шлюх с сотнями джоинов к другим таблицам, тысячью юнионами и тд. Уместно ли для этого использовать репозитории?
194 1748127
>>48125
Че ты высираешь блядь?
195 1748128
>>48127
Че не так?
196 1748130
>>48128

>репозитории предоставляют легковесные методы


Это че значит?
197 1748132
>>48130

>получить шлюху по имени, получить шлюх по ценам

198 1748135
>>48132
Ты вызываешь метод whoreRepository.getWhoreByName("Natasha"). Тебя ебет, что там внутри?
199 1748143
>>48130
Это означает, что клиентский код не связан с реализацией запросов и бд, а полагается на интерфейс доступа к данным - репозиторий. Почитай фаулера шаблоны корпоративных приложений или мартина чистая архитектура
200 1748146
>>48143
Вот именно. Причем тут реализация?
201 1748148
>>48135
А если мне нужен метод whoreRepository.получитШлюхуПоИмениЕслиИхБатиЛысыеИБратьяБатейМертвы(String name)?
202 1748154
>>48148
Тебе нужен не метод, а другой способ описания параметров. В спринге есть замечательный методв findByExample, почитай про него.
203 1748163
>>48154
Вроде бы это то, что нужно. Спасибо.
204 1748165
>>48125
Спринг дата работает через орм. Запрос ты пишешь к объекту(который @Entity), а не к таблице, а спринг сам решает что к чему он джойнить будет по твоему запросу. Но если хочешь можешь конечно ебануть @Query и ебашить на чистом sql.
205 1748175
>>48165

>Запрос ты пишешь к объекту(который @Entity), а не к таблице


Ты имеешь ввиду хибернейтовские билдеры, типа Criteria API?
206 1748222
Опять раскопали свой легаси хибернейт.
207 1748260
Нужен аналог пандаса с пиздона для java что бы хуярить с excel и open doc файлами
208 1748293
>>48035
зашел, через минуту "похоже, такого чата больше нет"
209 1748297
>>48293
Ты без впн зашел и спалил всех.
210 1748309
>>48297
ты троллишь? в чем смысл...
211 1748353
>>48260
Не ебу что за пандас, но про эксель это Apache POI
212 1748399
>>48121
PHP-макака?
213 1748416
Вы мои братишки
214 1748421
>>48154

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


У by example много ограничений, и вообще это все боль спрингдаты - пока ты на уровне findByName все прекрасно, а как только понадобится что-то нетривиальное, то даже просто чтобы написать что-то напрямую с jpa, начинаются эти неуклюжие приседания с дополнительными интерфейсами. И начинаешь думать - не проще ли было чистым хибернейтом обойтись.
215 1748429
>>48421
Чтобы использовать репозитории спринга достаточно создать интерфейс, объявить там пару методов и повесить аннотацию на main класс. Нет, зибернейт не проще. Вообще ничего проще нет.
216 1748433
>>48429
Ты прежде чем отвечать пытаешься прочитать пост и понять его мысль? Как объявлением метода в интерфейсе сделать условное вон то получитШлюхуПоИмениЕслиИхБатиЛысыеИБратьяБатейМертвы?
217 1748434
>>48433
findByExample есть из коробки.
218 1748437
Что делать, если не смог решить эту задачу за 3 дня?
https://hyperskill.org/learn/step/3658

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

Такую тупость можно как-то исправить решением задач и написанием кода?
14145771591262.jpg45 Кб, 500x407
219 1748441
Интересует мнение русских реперов по поводу книженции java head first - не слишком старая ?

Юмор, конечно, на любителя, но мне нравиться как все разжевано и как медленно поднимается уровень сложности - в отличии от ебанутых курсов с курсеры и степика с их мастурбацией грейдера, сложностью и подачей материала уровня пикрелейтед хотя может я пропустил годные, посоветуете ?
220 1748445
>>48434

>findByExample


Он мне поможет с подзапросом по братьям батей?
221 1748450
>>48437
Это в каком проекте заставляют?
222 1748454
>>48441
Хорестман лучше.
223 1748458
>>48441

>java head first - не слишком старая


Старая она конечно, но на этом самом начальном уровне оно не критично. Если нет аллергии на этот стиль, вполне годно
224 1748464
>>48450
Да это не проект, а просто задачка на стек и очередь
225 1748467
>>48464
Они просто так не дают задачи, они в каком-то проекте.
226 1748470
>>47535
>>47640
>>47646
годно, у меня аж привстал. именно как-то примерно так я и думал т хотел. спасибо энон
227 1748473
>>48467
Ну я смарт калькулятор сейчас делаю, вот там как раз была эта тема со стеками и очередями. Правда эта задача у меня как дополнительная была, хотел просто потренироваться.
228 1748474
>>47640
>>47535
правда в итоге вылез String, а не собрался отсортированный лист
229 1748494
>>48454
>>48458
Пасиба.
230 1748500
>>48445
Может уже откроешь мурзилку по спринг дате и посмотришь?
231 1748504
>>48437
Ты че дурак?
232 1748505
Ребята, помогите пожалуйста
Я свежий вкатывальщик, начинаю с Java core
Начал с видео follow the white rabbit по джаве на Ютубе
Короче, там 34 видео, и я только под конец понял, что походу автор не до конца раскрыл тему кор джавы
Опасаюсь, что могу упустить из-за этого важные вещи и пришел с вопросом
Джаву кор то по какому ресурсу лучше выучить на приемлимом уровнеперед продвижением далее?
233 1748514
>>48505

>Джаву кор то по какому ресурсу лучше выучить на приемлимом уровнеперед продвижением далее?



hyperskill + книга хорстманна
234 1748529
>>48500

>мурзилку


Что за уебанская лексика у нас тут теперь

>посмотришь


Так смотрел, не видел там такого. Что ожидаемо для концепции by example. И много чего еще не видел, например, запросов вида "вес шлюхи меньше". О чем и толкую.
235 1748533
>>48148
findWhoreByNameAndBatyaHeadIsBoldAndBrothersStatusIsDead()
Ты недооцениваешь спринг, выборки по полям это ещё не сложные запросы, пирожок.
236 1748536
>>48529

>запросов вида "вес шлюхи меньше"


findByWeightLessThan()
Нихуя ты не смотрел, там всё это есть в документации и с примерами.
Это невозможно пропустить, это гуглится за 2минуты.
Зря я в прошлом треде этот пример со шлюхами придумал, сдаётся мне, теперь в тред набежали их дети.
237 1748537
>>48514
что за книга? почему на нее такой яростный дроч здесь? На русском есть? дай название, и имя автора желательно
238 1748541
>>48536

>findByWeightLessThan


Чтобы не удержать в голове контекст беседы аж на два поста глубиной и забыть, что речь о "query by example", это чьим ребенком надо быть, интересно
239 1748545
>>48541
Ты че еблан? Тебе одно сказали и у тебя другое из головы вылетело? Ты че забыл тут?
240 1748546
>>48537

>почему на нее такой яростный дроч здесь


ну там вроде неплохо написано про джава кор. практикуясь и читая отдельные главы оттуда можно неплохо подучить кор.
на русском есть, правда забыл как называется, в шапке есть название на английском
241 1748547
>>48541
Про findByExample тебе другой анон написал, мне нечего добавить. Я ответил тебе про запросы уровня БольшеМеньшеЧем.
Всё это есть в документации, всё это гуглится. Не понимаю, зачем задавать вопросы, на которые уже 5 лет есть ответы на том же SO.
Спринг позволяет полностью отказаться от написания простых (и не очень) CRUD запросов и сосредоточиться на бизнес-логике. Обмазываться навороченными SQL конструкциями надо только во имя оптимизации, когда у тебя база в CH на сотни терабайт.
242 1748553
>>48547
Да блять, что ж тут все отвечают не на то, о чем написано. Вот смотри, там был анон со своими шлюхами и примером типа поИмениЕслиИхБатиЛысыеИБратьяБатейМертвы. В жизни бывают случаи, когда нужно шлюху найти вот такую и вот сякую либо вот еще такую и может быть такую. И с вот таким братьями и такими сыновьями. Которые еще в отдельных таблицах. Ты согласен, что спрингдатовые волшебныеОченьДлинныеИВитиеватыеМетодыИгнорироватьКейс не очень пригодны для всех возможных сложных случаев? И by example тоже далеко не всегда помогает.
243 1748569
>>48553
Если тебе нужно четкий ответ на твой вопрос, то обращайся к мурзилкам, друг.
244 1748579
Мурзилки мои мурзилки
245 1748595
>>48514
Здоровья тебе и денег
Я только после твоего ответа опять полезу шапку
И понял, что ебался в глаза и не видел кнопочки с книгами и так далее, там увидел
Спасибо большое, продолжу изучение
246 1748613
>>48553

>еще в отдельных таблицах


Да спрингу похуй же, связи указывай и хоть как храни.

>не очень пригодны для всех возможных сложных случаев


Ясен пень, все случаи он не покрывает. Тот же CH в спринге не поддерживается и запросы приходится руками писать.
Но 99% CRUD операций спринг выполнит без проблем.

>ИгнорироватьКейс


IgnoreCase.
Я не понимаю, в чём у тебя проблема с этими методами. Там ничего волшебного нет, те же самые SQL запросы под капотом, просто не надо их писать.
Или ты и геттеры/сеттеры сам пишешь, вместо ломбока?
image.png8 Кб, 473x285
247 1748634
248 1748643
>>48537

>>книга хорстманна


>>дай имя автора


Ты с таким подходом очень долго будешь вкатываться.
249 1748647
>>48634
Так и должно быть.
104709.jpg55 Кб, 300x221
250 1748648
>>48643
картинка отвалилась
251 1748649
>>48643
Но имя автора Кей, а не Хорстманн.
252 1748650
>>48648
О, знакомые мурзилки.
253 1748651
>>48529

>>Что за уебанская лексика у нас тут теперь


Пару тредов назад какой то дурачек начал форсить свое слово, ньюфаги подхватили.
254 1748654
>>48613

>Да спрингу похуй же, связи указывай


Падажжи, и для длинныхВолшебныхМетодов похуй?

>все случаи он не покрывает


О, хоть где-то мы согласились. Про 99% CRUD все понятно, но бывает в жизни не только прям круд-круд уровня "юзер редактирует справочник".

>те же самые SQL запросы под капотом


ДА ЛАДНО ПРАВДА ЧТО ЛИ. Заметь, кстати, я нигде не пишу о том, что ORM нинунжа и лучше писать SQL. Я об ощущениях от использования именно спрингдаты и о границах применимости ее волшебных интерфейсов.

>в чём у тебя проблема с этими методами


Да не то что большие проблемы, но странно не видеть их недостатки и ограничения. Забываем даже если случаи, которые они вообще не покрывают, остается тот факт, что они могут очень быстро разрастись до неприличной совершенно и нечитаемой длины. При чем ведь часто бывает, что простое становится сложным постепенно. Можно начать с понятного findByName, а потом оказаться в ситуации, когда надо добавить очередное условие, и ты либо получаешь уродливую хуйню либо идешь переписывать весь запрос на что-то другое.
255 1748665
Ну теперь точно какую-то хуйню обсуждаете.
256 1748667
>>48651
На других досках тоже так говорят.
257 1748672
>>48667
Двачую. В /asylum видел.
258 1748673
>>48672
А я такую доску не видел.
259 1748675
>>48665
Пиздец как заебали с хеллоуворлдами, надо репортить.
Это всё потому, что из шапки (НЕ НУЖНА) убрали EE и спринг.
260 1748676
А что, есть какие-то другие доски?
261 1748678
>>48675
Ну вон десятью постами выше какой то срач про энтерпрайзных шлюх на спринг дате был.
262 1748680
>>48675
Алсо через 1000 постов вкатятся олдфаги и тред станет обычным
263 1748683
>>48680

>олдфаги


Имеешь ввиду батей тех энтерпрайзных шлюх?
264 1748684
>>48680
Полгода уже жду, когда они вкатятся. Вот вычищатель, вроде бы, здесь, но про него ничего не слышно.

Алсо, хеллоуворлды и после 1500 обсуждают, но меньше мимокрокодилов со своими "джава - это кобол".
265 1748686
>>48680
>>48684
а о чем тут надо пиздеть, олдфаги уважаемые?
266 1748688
>>48686
О Котлине.
image.png36 Кб, 796x217
267 1748689
Кто из вас так думал? Вот теперь знайте.
268 1748690
>>48686
Какой я олдфаг, я всего-то год здесь сижу.
Ну как же?
ПОСТПРОЦЕССОРЫ БИНОВ
@
НЕСКОЛЬКО КОНТЕКСТОВ
269 1748691
>>48690
Спрингдатые шлюхи достойны пополнить этот ряд ящитаю
270 1748692
>>48689
Разве джава и джава скрипт - это разные языки?
271 1748693
>>48688

>О Котлине


Кто-нибудь тут юзал Exposed?
image.png140 Кб, 580x400
272 1748694
У кого-нибудь есть статистика по пиратству приложений на платформе Android и убыткам от этого?
273 1748696
>>48694

>>по пиратству и убыткам от этого?


Как ты собираешься убытки считать? Спиратили 10 человек приложуку за 300 баксов - убытки 3к? Ты ж понимаешь что без пиратов ее покупать никто бы не стал все равно?
274 1748698
>>48696

>ты ж понимаешь что без пиратов ее покупать никто бы не стал все равно?


Почему это?
275 1748700
>>48696
И дело не только в покупках. В пиратских приложениях отключена реклама, разблокирован платный функционал.
276 1748702
>>48689
Когда джава апплеты возродят и мы снова их сможем увидеть в обновленном виде на любимых веб-сайтах?
278 1748709
>>48704
О, котлиншизик тут. Ты же вроде давно покинул тред.
279 1748710
>>48709
Такого не знаю, ты ошибся аноном, друг.
280 1748733
>>48698
Потому что часто это выбор не между спиратить/купить, а между спиратить/пройти мимо.
image.png53 Кб, 630x334
281 1748741
282 1748746
283 1748748
>>48704

>https://kotlinlang.org/docs/reference/js-overview.html


При всей моей любви к котлину, не могу понять зачем нужен kotlinjs в его текущем виде. Кажется, оно не взлетает точно так же, как все прочие попытки сделать подобное. Вообще сама по себе возможность компилировать js из джавы/котлина дает профит, только если есть много фронтэнда-кода с какой-то самостоятельной инкапсулированной логикой. Может быть для чего-то типа браузерных игр это имеет смысл.

А вот этот типичный js-код, который обновляет dom и дергает бэк, его есть смысл писать на котлине, только если в комплекте будут мощные котлиновые же либы/фреймворки, которые заменят условный реакт. А нет таких, да и не нужны, выходит.
284 1748774
>>48474
Так и задумано с целью показать вывод в консоли. Если нужен лист то откати два последних шага и там коллект сделай, т.е. вместо

>.map(Whore::toString)


>.collect(Collectors.joining("\n"));


делай

>.collect(Collectors.toList());

285 1748778
>>48774
Миша, какой проект посоветуешь запилить?
286 1748839
я этот >>47766
нашел способ, https://github.com/gzstyp/jetbrains-agent
287 1748941
>>48654

>бывает в жизни не только прям круд-круд


Моё уважение, если ты действительно на таком проекте. А не просто сам себе работу усложняешь.

>ORM нинунжа и лучше писать SQL


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

>неприличной совершенно и нечитаемой длины


А SQL запросы при это остаются приличными? Особенно учитываю эту ёбаную разметку, когда помимо самого SQL ещё и слешами всё измазывается при каждом переносе.
Дальше, ты сами методы запросов не должен напрямую использовать, их будет использовать сервис.
Ну и я не вижу ничего плохого, в том, чтобы смешивать и то и другое. Одни запросы писать на спринг дате, другие на чём-то другом, второе наследуешь от первого или как-то так и вот у тебя уже общий интерфейс. В котором ты хоть как методы можешь назвать.
288 1748945
>>48941

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


https://dzone.com/articles/add-custom-functionality-to-a-spring-data-reposito
289 1749164
Дочитал официальную мурзилку по спринг дате. Куда двигаться дальше, камрады? Вообще, я планировал дочитать Блоха, сесть за алгоритмы, паттерны, роберта мартина, а потом уже осваивать веб. Норм?
290 1749187
>>49164

>я планировал дочитать Блоха, сесть за алгоритмы, паттерны, роберта мартина, а потом уже осваивать


Pft,bcm
291 1749214
А куда деваются примитивные типы, когда они уже не нужны? Их же гарбич не чистит.
292 1749216
>>49214
Ты че дебил?
image.png1,4 Мб, 774x986
293 1749265
На следующий оп пик.
294 1749268
>>49216
На стеке нет GC, он переполнится и пизда.
295 1749272
>>49268
Стек по умолчанию что-то около 8 мегабайт на современных десктопных ОС. Так что его более чем хватит, если только ты не придумаешь какую-нибудь рекурсию с кучей переменных на каждом фрейме стека
296 1749278
>>49214
При возврате из метода, все что аллоцировано на стеке удаляется. Вернее указатель стека сдвигается и эта область снова считается свободной для аллокации.
297 1749655
Сегодня весь день не хеллоуворлдили, а олдфаги все равно не вернулись.
298 1749756
Помогите с идеей. Она почему то не подключает jdbc драйвер видимо. И все время выбрасывает разные ошибки. 1) Если отключаю ручной подсос драйвера в проперти, но оставляю <version>5.1.47</version> то ошибка рисунок1. 2) Если отключаю ручной ручной подсос драйвера, убераю ручной ввод версии драйвера, то ошибка рисунок2. И третий вариант, уже хуй знает когда возникает, проблема в чем то одном. Что это, и как фиксить?
299 1749770
>>49756
Ты эту зависимость то скачал?
300 1749917
>>49164
а какая по спринг дате официальная?
301 1749920
>>49917
spring.io/projects/spring-data
302 1749938
Кто сможет убедить, почему не стоит вкатываться в NET Core?
303 1749967
>>49938
Говно без задач
304 1749992
>>49938
У Мокрософта было куча технологий которые они бросили. Непонятно сколько они будут с .Net Core возиться, не закроют ли завтра.
Я в курсе, что там исходники открыты, но без главного мейнтейнера проект сдохнет очень быстро.
305 1750004
>>49938
Если страна Россия, то работы мало и в большинстве это js + ASP.net
306 1750017
>>49992
А оракл бросил целый ЕЕ.
307 1750037
>>50017
И никто не даже не расстроился.
308 1750050
>>49770
Что значит скачал? Энейбл авто импорт, внизу справа нажал.
309 1750051
>>50017
Да, но он к тому моменты был практически мертв, уже все перешли на пружину. К тому же EE это только спецификация, реализации там сторонние. Так что это вполне реально поддерживать силами комьюнити.
310 1750058
>>49938
Почему ты спрашиваешь здесь, а не в точкаНЕТ-треде?

На джаве больше работы, и джава-related технологии проверены временем. Кор же появился недавно, интереса к нему мало, и рекламный лозунг, что он стал кроссплатформенным, очень сомнительный, ибо всё остальное было кроссплатформенным с самого начала. Конкурентных преимуществ у него нет, даже если он реально работает.

Вообще, я пытался как-то потыкать кор на линуксе, мне он показался очень сырым. Поддержка C# в доступных компиляторах сильно отставали от его последних версий + при гуглении сложно понять, что кроссплатформенно, а что только для винды, и узнаёшь это только тогда, когда попытался у себя запустить и пытаешься понять, почему не работает.. С джавой же сразу качаешь хоть последнюю версию JVM и запускаешь без проблем жарник, собранный хоть на винде. Может, у меня руки кривые, и на самом деле проблемы с кором решаются просто, но зачем это нужно, если джава просто работает.

В общем, если бы я ненавидел джаву, я бы скорее в говноланг вкатился, чем в эту поделку.
311 1750068
>>50058

>Почему ты спрашиваешь здесь, а не в точкаНЕТ-треде?


Ты читал их шапку? Эти шизики сидят в своем треде и довольно нюхают свои пуки.
312 1750072
>>50058
У них вроде asp.net покруче спринга будет? По крайней мере производительней.
313 1750089
>>50068
Не люблю лишний раз туда заходить, но есть такое.

>>50072
Я не знаток асп.нета, но вряд ли в плане потенциальных возможностей они сильно отличаются. О производительности же в тырпрайзе не особо думают, пока прям не припрёт.
314 1750126
Если я хочу постоянно обновлять какую-то картинку, представленную как bit map, и ловить нажатие клавиш, это реально сделать в браузере?
Что для этого можно использовать? Что-то типо мини игры (на самом деле перемещение по Множеству Мандельброта), в десктопе уже сделал.
315 1750142
От джавы тепло на душе. А шарп серый и холодный, прям бр-р-р.
316 1750144
>>50126

> Что для этого можно использовать?


JS + HTML 5 Canvas.
317 1750145
>>50050
Комменты читал к видео, по которому ты проект пилишь? Возможно это особенности мускла. С постгрессом таких проблем не было.

>Кто юзает mysql:


1) создаем базу либо через консоль, либо через десктопное проложение - create database sweater
2) в application.properties прописываем:
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/sweater?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC

>>50050
В последних версиях автоимпорт перестал работать, надо принудительно качать
318 1750198
Задавайте вопросы по джаве. После 500 постов на нубские вопросы не отвечаем.
319 1750221
Господа сеньоры, а можно еще один дебиловопрос по стримам: как, в примере со шлюхами конечно же, получить количество РАЗНЫХ вариантов, например, размера сисек, в виде целого.
Например для
whore1, tits 2, //+ other params
whore2, tits 2
whore3, tits 1
whore4, tits 1
whore5, tits 4
ответ 3, потому что есть сиськи №№1,2,4

Я подозреваю что как-то надо запилить reduce, но понять не могу как
320 1750226
Учить Котлин что ли
321 1750236
>>50221
whores.stream().collect(Collectors.groupingBy(Whore::getTits)).size()
322 1750237
>>50236
о, блин, точно. ну я и даун. спасибо.
323 1750239
>>50236
а через reduce можно? я не очень понимаю его сигнатуры. че он там может а чего нет, хз вообще.
324 1750240
>>50145

>В последних версиях автоимпорт перестал работать


Как он может перестать работать? Ты рофлишь так? И у меня не последняя версия 2019.3.3 build on February 11, 2020
325 1750246
>>50239
Самому стримы надо подучить, обращайся к Мише.
326 1750253
Вот хорошая мурзилка по стримам, кому надо: https://annimon.com/article/2778
327 1750255
>>50246
Кто это?
328 1750261
>>50255
Добрый человек, носящий с собой чемодан тестов и помогающий ньюфагам с хелловорлдами.
329 1750270
>>50226
Мертворождённый
330 1750272
>>50261
А с чего ты взял, что его так зовут?
331 1750279
>>50272
Потому что он добрый.
332 1750284
>>50279
Мда. Может это ты еще придумал туториалы называть мурзилкой?
333 1750291
>>50284
Не-а.
334 1750320
>>50221
.mapToInt(Whore::getTits).distinct().count()

Если хочется reduce то: https://pastebin.com/zKspPKvg
335 1750347
>>50320
годно!
если я буквально дрочу на стрим АПИ, везде пытаюсь это пихать, это значит что мне надо перекатываться к функционалопидорам, или это, в целом, нормально?
336 1750362
>>50347
Иди clojure учи.
337 1750365
>>50362
А какие потом проекты на этом говне делать?
338 1750374
>>50347
У вас стримоз, у большинства проходит со временем. Но некоторым приходится переходить на Скалу/Кложуру.
Не доводите до этого, хотя бы раз в неделю практикуйте циклы.
339 1750402
>>50347
Это ж вкусовщина.
340 1750405
Поясните как изучать Спринг? Я пробовал читать квик гайды на спринг.ио, но я не очень понимаю что там происходит, хуяк, хуяк, готово! You need to create the repository that holds user records, as the following и? зачем? как? почему? что это такое? нахуй нужно?
341 1750412
>>50405
Двощую. Как понять, зачем вообще нужен спринг? Почему я не могу написать сервер без него? Что это вообще такое?
342 1750414
>>50405
>>50412
Ебать вы ньюфаги. Тут полгода назад обсудили, что спирнг не нужен по большому счету.
343 1750416
>>50412
Ну тип связывать друг с другом модули через DI, пилить связь с БД. Я сам диван правда как и вы.
pepethinking.png36 Кб, 860x603
344 1750417
Сап, ролидовые.
Посоветуйте годный сквозной курс по Джаве для тех, кто уже умеет хорошо кодить, но на другом языке.
Синтаксис понятен, типизация тоже (на фуллтайме пишу на Typescript), структуры данных/ООП знаю и юзаю каждый день.
Интересует именно сжатый курс, чтобы быстро освоиться во всяких пакетных менеджерах, подводных камнях создания/запуска проекта (есть IntelliJ Idea, если что), best-practices, чтобы лучше понимать чужой код и не делать в своем распространенных, специфичных именно Джаве ошибок.

Конечная цель - лучше понимать язык, чтобы легче заходили примеры в документации йобы от Apache - Zookeper, Kafka, etc. Добра.
345 1750419
Раскапываем хибернейты и сервлеты обратно.
346 1750431
>>50405
Подход такой, что да, нужно верить в магию.

> и? зачем? как? почему? что это такое? нахуй нужно?


При изучении любой новой хуйни всегда замечаешь, что всё слишком взаимосвязано, и, чтобы полностью понять A, надо понять B, а чтобы понять B, надо понять A. Поэтому тупо переписываешь код с туториала, смотришь, что он работает, читаешь объяснения и начинаешь гуглить и экспериментировать.
347 1750433
>>50419

> хибернейты


Не нужен, есть JDBC.

> сервлеты


Годнота.
348 1750440
>>50433
А свинг?
349 1750445
350 1750454
>>50445
Надо было ответить "Идеален".
351 1750456
>>50433
ЖДБСи же слишком низкоуровневый? Я сам люблю разбираться во всем вплоть до напряжений на полевиках в процессоре, но для кровавого энтерпрайза ОРМ получше будет, не?
352 1750460
>>50445
SWT + Eclipse RCP
353 1750473
>>50456
Есть хипстерский JdbcTemplate - обёртка над ждбс, у нас в основном он. ОРМ у нас не любят, много неявной магии, и часто, когда кто-то пытается его притащить, это потом выстреливает.
354 1750481
>>50240
Его в апреле выпилили, но уже вернули через настройки, когда народ стал жаловаться, что стало неудобно.
355 1750482
>>50473
А как же NamedParameterJdbcTemplate
356 1750485
>>50482
Да.
357 1750492
>>50473
пойду чекну мурзилку по нему. самому надо забахать небольшой проектик демо-характера, пробовать лепить туда целый спринг со всем окологовном как-то кажется странным.
358 1750503
>>50492
Какой-нибудь бут норм, это не сервера приложений, у тебя будет всего лишь один жарник метров на 20-50.
359 1750506
>>50405

>нахуй нужно?


Чтоб время экономить.
Написать несколько десятков строк и получить результат, или написать одну строчку, а всё остальное напишет машина.
Выбери одно и ты поймёшь нужен ли тебе спринг.
Не нужно смотреть на фреймворк как на необходимость. У тебя есть труп шлюхи, тебе надо его закопать? Взял лопату и по-быстрому вырыл яму. А если у тебя Дом-2 по соседству и шлюх тебе отгружают штабелями, ты что будешь под каждую яму копать? Нахуй надо, лучше купить экскаватор. Спринг бесплатный если что. Правда ковшом надо уметь пользоваться, но и выхлоп будет соответствующий же.
Далее. Ты ж не ради лулзов учишь жабу, а для работы. И вот как-то так сложилось, что умение использовать "экскаватор" требуется довольно часто. Но не везде, даже по треду посмотри. И на хибернейте, и на JDBC кто-то пишет. Давно хх не смотрел, но помню что были и без спринга вакансии. Т.е. это не прям вот обязательное требование.
360 1750515
>>50417
Venkat Subramaniam - Functional Programming in Java (The Pragmatic Programmers).
Там про стримы норм написано, сам читал когда вкатывался, мне понравилось. Как крутить списки, вот всю эту хуйню. Довольно короткая мне показалась, легко прочитал.
Коузен К. - Современный Java. Рецепты программирования.
Тоже самое, но поновее и не только про стримы. Есть на русском.
Хз что тебе посоветовать даже, Блох Д.- Java. Эффективное программирование, на ум приходит, я читал, но это нихуя не сжатое же.
А, во, есть же мурзилка от метанита. Короче не придумаешь!
361 1750531
Почему у меня ИДЕА не запоминает расположение окон в новых проектах? Дико бесит. Можно это как то исправить?
362 1750544
>>50431
Зависит от того кто гайды пишет. Вот читаю щас на баелданге регистрейшн флоу и что я вижу? Он мне в примере в страничку хтмла на тимлифе (у меня тоже тимлиф) повтыкал всякой хуйни типа <h1 th:text="#{label.form.title}">form</h1>
и ни слова сука не написал что это за ссылка, пришлось отдельно гуглить, что это ссылка на параметр из пропертей из бандла меседжей (короче для интернализаации). Нахуй мне эта интерналиазация тут? А по итогу нихуя же не работает из за этого и не понятно - то ли я криво скопипастил и что то прпустил, то ли автор мудак. Ну и пропустить пару строчек кода в примере, чтоб это даже не компилировалось - тоже норма. С импортами тоже разберешься, там всего по 2-3 аналогичных варианта. Ну а что статик импорты были ты и сам догадался, правда же?
хотя конечно это куда лучше, чем слушать очередной гайд на индусском на ютабе.
363 1750564
>>50515
Ты наверное хотел это кинуть анону который реквестил что-то по стримам? стрим стрим функциональщиной погоняет у тебя
364 1750576
>>50544
В этих мурзилках внизу всегда есть ссылка на гитхаб.
365 1750580
>>50506
Так хибер и ждбс вдовесок к спрингу идут чаще всего.
366 1750666
>>50564
Не, всё правильно. Раз он знает про ООП и основы, то ему как раз это и нужно. 8ая жаба и прочие стримы, прочитать про них и вперёд.
367 1750672
>>50544

>баелданг


Да, вот меня это тоже поначалу выбешивало, потом привык. Он там пишет так, будто для себя памятку составляет, т.е. самое главное запишу, а всё остальное я итак помню, поэтому пропишу.
Как у шизиков в старых учебниках, 2 страницы формул, потом "очевидно, что..." и из этого какой-то вывод на ещё 2 страницы.
368 1750685
>>50515
Ок, спасибки. Я юзал стримы в Node.js (юзаются например для асинхронного неблокирующего чтения большого файла, чанки которого тут же пихаются в другой стрим, или пихаются в ответ запроса), тут я так понимаю суть та же?
369 1750692
>>50685
Я не знаю, как там в ноде. Мне стримы Scala напоминают.
370 1750765
Что бы написать, чтобы кор надрочить и не скучно было.
371 1750782
>>50765
В джаве острейший дефицит библиотек для длинной арифметики.
372 1750886
>>50576
Эти гитхабы часто не компилируются/не запускаются. Их чинить дольше, чем разобраться почему у тебя это не работает.
373 1750962
Подскажите плес...
Пусть есть класс Whore, а внутри него вложенный нестатический класс Tit.
У класса Whore есть list объектов Tit (список титек). Чтоб иметь к нему доступ, есть метод addTit(Tit tit).
Я могу добавить титьку так:
masha.addTit(masha.new Tit());
Внимание вопрос:
Как мне предотвратить возможность такой конструкции:
masha.addTit(krissy.new Tit());
короче, как не позволить добавить шлюхе сиську, привязанную к другому инсту. Можно ли для этого просто поменять какие-то модификаторы, или надо пилить какую-то ёба-логику в addTit?
374 1750964
>>50962
Проще всего сделать конструктор приватным и не принимать титьку, а создавать внутри addTit()
Ну или проверять владельца при добавлении.
375 1750966
>>50964
А как вообще проверить принадлежит ли какой-то инст другому инсту?
376 1750971
>>50966
У титьки добавить метод
void checkOwner(Whore whore) {
if (Whore.this != whore) {
throw new PomogiteNasilyutException();
}
}
377 1750975
>>50971
а нет чего-то вроде ссылки на владельца, вроде как this всегда ссылка на объект-овнер метода, который вызвали?
378 1750978
>>50971
Вроде, вкурил
Whore.this - это и есть овнер. Я и не знал такого синтаксиса, либо забыл. Спасибо, анонче
379 1750980
>>50975
Внутри титьки Whore.this это и есть ссылка на владельца. Снаружи она не доступна, надо писать метод который ее вернет.

А вообще все это жуткий антпатерн. Все эти неявные this это костыли из старой Явы. Если у тебя есть концепция владения - делай это явным образом.
380 1750982
>>50980
Ну я запилил такие два метода на выбор

public boolean checkIsOwner(Whore w) {
return w == Whore.this;
}

public Whore getOwner() {
return Whore.this;
}

Это тоже антипаттерн и за такое надо палками пиздить или норм?
381 1750997
>>50982
Тут проблема в Whore.this. Нужен владелец - сделай обычный статический класс и поле owner в нем. И дальше уже можно в add() устанавливать нового владельца, а у старого делать remove() и т.д.

А вот эти скрытые ссылки на родительский объект это тяжкое наследие Java 1.2 просто не используй.
382 1751019
>>50997
Ну, ведь сама идея Inner-class в джава заключается в том что у инстанса такого класса обязательно есть единственный овнер. Зачем пилить велосипеды на эту тему? Или в сообществе считается что эта тема с иннерами в джава плохая сама по себе?
383 1751031
Трудно придумать что-то более скучное, чем обсуждать круд про шлюх.
384 1751033
>>51031
А что еще обсуждать? просто шлюх?
385 1751139
>>51019
Иннер классы это костыль который сделали чтобы можно было легко создавать листенеры.
Нужен был способ лекого создания всяких листенеров, для этого замутили:
- внутренние классы, которые через костыльные прокси методы имеют доступ к приватным мемберам друг друга в будущих релизах обещают сделать по нормальному
- анонимные классы
- замыкание которое по умолчанию захватывает this родителя, чтобы можно было легко вызывать методы родительского класса ты в классе Tits можешь вызвать любой метод Whore без дополнительных усилий

Если использовать это для чего-то еще - то тут есть куча проблем. Самая главная это неочевидность такой связи, одно дело поле owner которое явно присваивается, другое дело Tits.this которое часть компиляторной магии. Плюс это поле нельзя менять. Создание объекта через жопу.
386 1751145
>>49938

> Кто сможет убедить, почему не стоит вкатываться в NET Core?


Конечно сами майки https://twitter.com/JavaAtMicrosoft
387 1751152
>>51145
Сейчас бы в 2020 не отличать маркетинговый ход, от реальности. МС всеми силами пытается примоститься в разные комьюнити, чтобы создать образ своего парня.
388 1751164
Как-то можно импортнуть классы, не находящиеся ни в каком пакете? Например в код класса, расположенного в пакете, нужно заимпортить класс, лежащий просто в src. Иначе код просто не видит его.
389 1751170
>>51164
Из default package нельзя ничего взять.
390 1751172
>>51170
Спасибо. Надо просто все запихать в какой-нибудь CommonSrc pkj тогда наверное и порядочек.
391 1751174
>>51152
Реальность состоит в том, что майки поняли что проиграли битву за серверсайд (ну кроме гейдева и интеграций с офис365). Но приняли мудрое решение не копротивляться, а возглавить. Тем более что сейчас деньги в облаках и вебе, а не десктопах. Поэтому и Edge теперь на хромиуме и VS Code на JS, а не .Net Core.

Так что будущее .Net Core непонятно, если он так и останется на задворках серверсайд разработки а прелпосылки для этого есть - его не поддерживают другие IT гиганты https://en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites . То майки могут решить, что ну его нахер.
392 1751190
>>51174
Как же все перемешано, вроде и правильные мысли, вроде и повторил тоже что и я сказал, но в тоже время просрался.

Мне так то срать на си шарп, но его нет в крупных компаниях, потому что раньше он не был опенсорс и кроссплатформенным. Кроме примитивных галлер, никто не держит сервера на винде. Каким местом ты хотел увидеть сишарп вообще там.
393 1751201
>>43038 (OP)
Двач, хочу начать изучать java. Посоветуйте с какой книги из пикрилов начать.
изображение.png279 Кб, 405x500
394 1751204
>>51201

Можешь сразу с этой:
395 1751209
>>51204
После того как завезли котлин, на жабе уже не так больно писать.
396 1751211
>>51204
А есть кобол для не программистов?
397 1751214
>>51211
Может для бизнес-аналитиков
398 1751223
>>51139
Какие листенеры?
399 1751266
>>51190
В глаза ебешься? Я писал что отсутвие интереса у крупных компаний к .Net - снижает его и у мелких компания и индивидуальных разработчиков. Новые инструменты для разработчиков будут в первую очередь поддерживать стек самой компании. И уже потом энтузиасты допилят поддержку остальных языков. На интервью в FAANG coding chalenge доступен на Яве да Питоне, иногда С++.

Что касается хостинга, то все крупные облачные провайдеры хостят .Net с этим нет проблем.
401 1751268
Есть выражение вида: .*+a
Какая строка даст совпадение?
image.png634 Кб, 960x540
402 1751287
403 1751290
>>51287
А теперь пиздуй гуглить в каком году джава перешла ораклу.
404 1751292
>>51290
Чел ты же к мему приебался...
405 1751293
>>51267
Не вижу там примеров с Classname.this
406 1751298
>>51290
А саны такое не писали?
407 1751300
Сап, двач. Мимо мидло на крестах с 5 годами опыта работы. Как вкатиться чтоб не на жуна, а прям на мидла? Стоит ли?

Хочу в бэкенд.
408 1751304
>>51300

Ну там уже 3 поколения технологий сменилось и анусы абстрактными фабриками закалены.
409 1751307
>>51304

А на крестах тип нет паттернов?(
image.png103 Кб, 504x382
410 1751335
411 1751352
>>51293

>Не вижу там примеров с Classname.this


Это просто пример листенера, если хочется с Classname.this то вот пример с неявным https://www.javamex.com/tutorials/swing/text_fields_labels.shtml

тут в строке
resultField.setText("n 2 = " + String.format("%.2f", n));

на самом деле происходит
MyApplication.this.resultField.setText("n
2 = " + String.format("%.2f", n));

Но это за тебя делает компилятор. Это как раз то, про что я писал анонимный класс замыкается на объект предка и дает доступ к приватным данным. там если поля сделать приватными и прошерстить класс рефлексией еще синтетические методы для доступа к полям всплывут
412 1751358
>>51201
Уже есть десятое издание Шилдта. Вопрос в другом. Как проникнить в DarkWeb?
413 1751433
>>51352

>синтетические методы для доступа к полям всплывут


О, как в котлине.
414 1751438
>>51352
А, точно, эти свинговые приложения с наследованием от JFrame и анонимными классами на листенерах. Как же хорошо, что вышла 8 джава.
415 1751467
>>51433
Ну в Котлине это понятно, они не контролируют платформу и не могут добавить нужные вещи в JVM. Но когда сами авторы JVM вместо того, чтобы сделать по уму - костылят компилятором доступы. Это выглядит не очень.
416 1751473
>>51201
Я учил по Шилдту в основном. Годный автор, только сухой. Издание надо новее. Правда я не професси-анал, тупо могу навелосипедить довольно многое, считаю что знаю кор.
Эккеля видел очень уцененного в магазине, брать не стал, хотя хотелось: появилось ощущение что там ультрастарая джава, вроде как еще до 8-ки, когда много чего впилили
417 1751483
>>51352
А что плохого что анонимный класс, либо иннер-класс, может получать в управление свое окружение, и наоборот? Это же вполне логично, учитывая семантику этих вещей, нет?
Если брать тот пример из шлюхокруда, что плохого в том чтоб из сиськи написать Whore.this.doSomething()
418 1751508
>>51483
Если это внутренний класс и создается внутри метода родительского - то нет никаких проблем. Так например создаются итераторы у листа.

Но в оригинальном шлюхокруде сиськи предполагается создавать все метода шлюхи, а потом еще валидировать чтоб чужую сиську не подсунули. А вот это уже трешь и угар, даже сам синтаксис
mashka.new Tits()
говорит - не используйте меня!
419 1751522
>>51508
А, ну то да, дичь. Надо бы их где-то внутри изолировать и конструировать по воздействию извне, типа addOneMoreTit, я так думаю
420 1751614
>>51522
Эдак скоро и фабрики изобретёте тут.
421 1751617
>>51614
Шлюхофабрики шлюхобинов? А потом постпроцессить их будем?
422 1751625
>>51617
Это ж двач, скорее у омежек проебётся икапсуляция, начнётся рефлексия, в результате всякие мутные объекты получат доступ к приватным полям, а там уже и до изучения GC на практике недалеко, если ты понимаешь о чём я.
423 1751740
Анон, я чего-то не понимаю. Зачем нужна аннотация CachePut, если с ней метод всё равно всегда выполняется? Разве смысл кэша не в том, чтобы избежать кучи обращений к репозиторию?
Или она с общим кэшем сотрудничает просто? Типа, для геттеров - Cacheable, а для сеттеров - CachePut?
424 1751742
>>51740
Видимо так и есть. По формулировкам из гайдов и документации не сразу понятно.
425 1751747
>>45459
Во первых, почему он не статический? Он разве использует поля внешнего класса? Можешь пояснить, с какой целью был выбран внутренний класс?
426 1751759
>>51740
CachePut - гарантированно выполняет метод. Например метод который гарантированно перечитает данные из базы. Кто-то пошарил ручками в базе и не сбросил кеши. И тогда пользователь жмет force refresh.
image.png30 Кб, 737x390
Архитектура 427 1751760
Есть тут синьеры помидоры ?
Туплю уже целый день не могу придумать как правильно реализовать задачу.

Вообщем есть абстрактный класс драконов. От него хочу создать еще 3 класса в который будет переопределены несколько методов отвечающих за передвижение. (полет, плавание , хождение)
Также у меня есть уже не абстрактные классы dragon1,dragon2,dragonN+
В них тоже должны быть переопределены методы которые отвечают за размер модельки конкретного дракона и его реальные параметры.

Также я хочу создать фабрику которой нужно будет передать builder в котором указан тип создаваемого дракона.
Вопрос как лучше это все соединить ? Я не могу использовать интерфейсы по типу IcanFly, IcanSwimm потому что в них не могу переопределить методы движение.

Скорее всего я просто тупой. Но прошу помочь.
428 1751763
>>51760
У тебя ООП головного мозга. Студентик небось? В вузах любят такого говна в мозги насовать.

Например

>В них тоже должны быть переопределены методы которые отвечают за размер модельки конкретного дракона и его реальные параметры.


Делаешь класс Дракон с полями цвет и размер, а не абстрактный класс дракон с подклассами КрасныйМаленькийДракон и СинийБольшойДракон.
429 1751765
>>51763
Я наверно глупо обьяснил.
Я хочу чтобы при помощи билдера я создавал любого дракона.
У менять есть моделька и его параметры (урон цвет размер), они не изменяемые , изменяется только тип перемещения (летает плавает ходит)

В конечном результате я хочу получить билдер которому я передаю параметры дракона , а он сам мне создает того который нужен.
image.png417 Кб, 667x500
430 1751766
>>51760
Что-то ты дохуя переусложняешь. Начни с простой иерархии без фабрик с билдерами и куч интерфейсов. Лучше зарефакторить потом, как возникнет необходимость.
image.png25 Кб, 651x379
431 1751770
>>51766
Я уже реафкторю и хочу избавится от такого кода, его просто слишком много.
432 1751790
>>51765
@FunctionalInterface
static interface DragonBuilder {
public GragonAbstractClass create(String name, int speed);
}

private static DragonBuilder action(int number) {
switch (number) {
case 1:
return Dragon1::new;
case 2:
return Dragon2::new;
case 3:
return Dragon3::new;
default:
return Dragon4::new;
}
}
Чтобы работало нужно, чтобы все наследники GragonAbstractClass имели одинаковые параметры конструкторов (String name, int speed).
Мимо другой тупой студент, не проверял, но можешь попробовать
433 1751793
>>51790
Спасибо конечно, но проблема не в том чтобы работало.
А в том чтобы выглядело красиво и работало.
Свитч плохая штука в таких делах, представь что у тебя драконов 120.
434 1751849
>>51760
мимо-джун

public interface Dragon {
void action ();
Dragon getNew(int param, String name);
}

public class WhoreDragonMother implements Dragon {

private int parameter;
private String name;

public WhoreDragonMother(int parameter, String name) {
this.parameter = parameter;
this.name = name;
}

public WhoreDragonMother() {}

@Override
public void action() {
System.out.println("Даю под хвост дикарям, сосу хуй карликам, инцест приветствуется.");
}

@Override
public Dragon getNew(int param, String name) {
return new WhoreDragonMother(param,name);
}

}

import java.util.function.Consumer;

public class DragonBuilder {
private Dragon dragon;
private int param;
private String name;

private DragonBuilder() {}
DragonBuilder dragon (final Dragon dragon) {
this.dragon = dragon;
return this;
}

DragonBuilder param(final Integer param) {
this. param = param;
return this;
}

DragonBuilder name(final String name) {
this. name = name;
return this;
}

static Dragon build (final Consumer<DragonBuilder> block) {
final DragonBuilder builder = new DragonBuilder();
block.accept(builder);

return builder.dragon.getNew(builder.param, builder.name);
}
}

public class Main {
public static void main(String... args) {
Dragon denie = DragonBuilder.build(dragonBuilder ->
dragonBuilder.dragon(new WhoreDragonMother())
.param(3)
.name("Дейнерис"));

denie.action();

}
}
434 1751849
>>51760
мимо-джун

public interface Dragon {
void action ();
Dragon getNew(int param, String name);
}

public class WhoreDragonMother implements Dragon {

private int parameter;
private String name;

public WhoreDragonMother(int parameter, String name) {
this.parameter = parameter;
this.name = name;
}

public WhoreDragonMother() {}

@Override
public void action() {
System.out.println("Даю под хвост дикарям, сосу хуй карликам, инцест приветствуется.");
}

@Override
public Dragon getNew(int param, String name) {
return new WhoreDragonMother(param,name);
}

}

import java.util.function.Consumer;

public class DragonBuilder {
private Dragon dragon;
private int param;
private String name;

private DragonBuilder() {}
DragonBuilder dragon (final Dragon dragon) {
this.dragon = dragon;
return this;
}

DragonBuilder param(final Integer param) {
this. param = param;
return this;
}

DragonBuilder name(final String name) {
this. name = name;
return this;
}

static Dragon build (final Consumer<DragonBuilder> block) {
final DragonBuilder builder = new DragonBuilder();
block.accept(builder);

return builder.dragon.getNew(builder.param, builder.name);
}
}

public class Main {
public static void main(String... args) {
Dragon denie = DragonBuilder.build(dragonBuilder ->
dragonBuilder.dragon(new WhoreDragonMother())
.param(3)
.name("Дейнерис"));

denie.action();

}
}
435 1751867
>>51849

>инцест приветствуется


Это как? Типо заказал вхору, а приехала твоя ...
238479384694685.jpg10 Кб, 275x183
436 1751880
>>51867
Извиняюсь за спойлеры, конечно, но 2020 на дворе. Учи мемасы, не будь батхёртом.
437 1751900
Как будто что-то плохое.
438 1751901
>>51900

@

ПОРЖАЛА, ЗАЧМОРИЛА И СЪЕБАЛА, ВЗЯВ ДЕНЬГИ
439 1751905
>>51901
@ А ТЫ И НЕ ПРОТИВ
В /fet много таких, кому это придётся по душе.
440 1751928
>>51905

@

ВЕРНУЛАСЬ С СУТЕНЕРОМ

@

СУТЕНЕР ОТПИЗДИЛ

@

УШЛИ

@

ОПЯТЬ ВЕРНУЛАСЬ, НА ЭТОТ РАЗ С МУСОРАМИ И ЗАЯВЛЕНИЕМ ОБ ИЗНОСЕ.

@

МЕНТЫ ПОГРУЗИЛИ В БОБИК, ПОЕХАЛИ ШИТЬ ДЕЛО, ДАЛЬШЕ 2 НЕДЕЛИ ОБЕЗЬЯННИКА И ЭТАПОМ НА ТЮРЬМУ

@

НА ВХОДЕ ПРЕДЛОЖИЛИ ПОЛОТЕНЦЕ УНД ДВА СТУЛА

@

ТЕМ ВРЕМЕНЕМ МУСОРА УЖЕ ПРИДЕЛАЛИ НОГИ ВСЕМУ ИЗЪЯТОМУ В ДОМЕ ИМУЩЕСТВУ, ВКЛЮЧАЯ КАКТУС У ПЕКАРНИ, САМОЙ ПЕКАРНИ, ВСЕЙ МЕБЕЛИ И ДАЖЕ УМУДРИЛИСЬ ТОЛКНУТЬ РАКОВИНУ.

@

НАЧАЛИ ПЕРЕПИСЫВАТЬ ТВОЮ СЫЧЕВАЛЬНЮ НА ИБРАГИМА МАГОМЕТОВИЧА-ОГЛЫ И ЕГО СЕМЬЮ

@

ТЕМ ВРЕМЕНЕМ ПО ТВОЮ ЖОПУ УЖЕ БЕЗ СМАЗКИ И КОНТРАЦЕПЦИИ ГОТОВИТСЯ СИФОЗНО-ГЕПАТИТНЫЙ ЗЕКА
440 1751928
>>51905

@

ВЕРНУЛАСЬ С СУТЕНЕРОМ

@

СУТЕНЕР ОТПИЗДИЛ

@

УШЛИ

@

ОПЯТЬ ВЕРНУЛАСЬ, НА ЭТОТ РАЗ С МУСОРАМИ И ЗАЯВЛЕНИЕМ ОБ ИЗНОСЕ.

@

МЕНТЫ ПОГРУЗИЛИ В БОБИК, ПОЕХАЛИ ШИТЬ ДЕЛО, ДАЛЬШЕ 2 НЕДЕЛИ ОБЕЗЬЯННИКА И ЭТАПОМ НА ТЮРЬМУ

@

НА ВХОДЕ ПРЕДЛОЖИЛИ ПОЛОТЕНЦЕ УНД ДВА СТУЛА

@

ТЕМ ВРЕМЕНЕМ МУСОРА УЖЕ ПРИДЕЛАЛИ НОГИ ВСЕМУ ИЗЪЯТОМУ В ДОМЕ ИМУЩЕСТВУ, ВКЛЮЧАЯ КАКТУС У ПЕКАРНИ, САМОЙ ПЕКАРНИ, ВСЕЙ МЕБЕЛИ И ДАЖЕ УМУДРИЛИСЬ ТОЛКНУТЬ РАКОВИНУ.

@

НАЧАЛИ ПЕРЕПИСЫВАТЬ ТВОЮ СЫЧЕВАЛЬНЮ НА ИБРАГИМА МАГОМЕТОВИЧА-ОГЛЫ И ЕГО СЕМЬЮ

@

ТЕМ ВРЕМЕНЕМ ПО ТВОЮ ЖОПУ УЖЕ БЕЗ СМАЗКИ И КОНТРАЦЕПЦИИ ГОТОВИТСЯ СИФОЗНО-ГЕПАТИТНЫЙ ЗЕКА
441 1751929
>>51760
А туда ли ты зашел? Тут принято все в шлюхах оформлять. Твои драконы никому не интересны фантазер фэнтезист
442 1751940
>>51929
Нет ничего скучнее шлюх.
443 1751945
>>51940
А шлюх-драконих?
444 1751948
>>51945
Уже лучше.
image.jpg32 Кб, 358x358
445 1752051
Это всё из-за аниме.
446 1752073
Не ну вы и ебанушки конечно
447 1752074
А че такое?
1575936853183056200.png551 Кб, 960x540
449 1752201
450 1752231
Блядь, ну как это говно фиксить я просто не понимаю сука
451 1752234
>>52231
У тебя имя твоего класса Controller совпадает с именем класса аннотации
452 1752236
>>52234
да уже понял, жарко сегодня
453 1752237
>>52231
Мне кажется погромирование это не твоё. Если навестись мышкой на красненькое, там тебе прямо английским языком будет написано, что объект с таким именем уже определён и надо его переименовать.
aDV7Xp5g700w0.jpg72 Кб, 700x876
454 1752241
Ребят, помогите плез. Привалила мне задачка напилить сайтец для волонтёрской организации. Бюджета нет, но вы держитесь.

Из контента будут всякие новости об их успехах и статьи как помочь другим и прочая дичь.

Вопрос, где хранить картинки можно бесплатно? Очень хотелось бы aws s3, но каждый год регать акк геморно.
Смотрю на фришный план cloudinary, хватит ли его для этой идеи?
Я в сервисах для хранения файлов полный ноль. Раньше пришёл на проект и уже что-то есть, все юзают. А тут надо самому найти, да и чтоб денег не надо было, жопа короче.
Я уже думаю, мб с гугл драйва можно как-то по конченному вытягивать?

Обоссыте, но помогите плез
455 1752244
Поясните, когда я вижу на вакансии джуна, требование знать Спринг, это что имеется в виду? И сколько его надо изучать, чтобы знать на джуна? И как его изучать?
456 1752246
>>52244
кор, бут, мвс, дату мб и тамлиф
457 1752247
Небольшой вопрос по теории. Зачем в JPA такая аннотация, как GeneratedValue? Зачем ему знать, как рассчитывается ключ? Разве генерация первичного ключа - не компетенция самой СУБД?
458 1752251
>>52247

Ну вот в оракле для каждойтрадиционно нужно пердолить велосипед руками, через сиквенс, .
459 1752253
>>52244

>это что имеется в виду


Это значит ты можешь сделать тестовое. Его не просто так дают, а чтобы проверить.

>сколько его надо изучать, чтобы знать на джуна


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

>как его изучать


Без задней мысли.
460 1752256
>>52241

> напилить сайтец для волонтёрской организации


PHP.

> мб с гугл драйва можно как-то по конченному вытягивать?


Да, но он не резиновый + хз, какие проблемы могут быть. https://lifehacker.ru/embed-google-photos/
461 1752258
>>52251
Ну даже если так, всё равно ведь сиквенс к ключу привязывается в СУБД? Каким образом тут JPA участвует? Ему же просто надо сущность вставить, а ключ база сама сгенерирует, не?
462 1752260
>>52251
Сиквенс сиквенсом, но к нему не менее традиционно пишется триггер.
463 1752272
Как стать таким же умным в джаве как Тагир Валеев? Ну или хотя бы Барух.
image.png164 Кб, 403x455
464 1752275
>>52272
Странные у тебя кумиры.
465 1752278
>>52272

>Тагир Валеев


Загуглил, выдало какой-то доклад с оптимизациями хешкодов.
Пиздец, заниматься оптимизацией на жабе, это всё равно, что придти в дорогой итальянский ресторан, заказать лучшее блюдо, а потом закинуть ноги на стол и попросить официанта принести мазика или кетчупа из пятёрочки.
А то чёт невкусно нихуя))
466 1752284
>>52088
годно. я правда не тот фантазер с дракенами
467 1752298
>>51793
>>51760
Сеньор Миша на связи

>Свитч плохая штука в таких делах, представь что у тебя драконов 120


Плохая штука это у тебя на ифах в >>51770, а 120 кейсов в свиче это нормально (загугли рекомендуемую реализацию html парсера от w3c на конечных автоматах). Другое дело что 120 разных классов драконов - это уже попахивает... Я прочитал твою архитертуру и согласен с комментаторами выше - че-то у тебя переусложнено все, ты точно все хорошо понимаешь? А я вот не понял - классы "dragon1,dragon2,dragonN+" - они от кого наследуются? Они вообще точно наследуются, это точно классы, а не объекты? По описанию характеристик - размер модельки, реальные параметры - эти характеристики вполне могут быть полями и 120 классов здесь не нужно.

И еще:

>я хочу создать фабрику которой нужно будет передать builder в котором указан тип создаваемого дракона


В фабрику передать билдер? Нахуя тогда нужна фабрика вообще? Это ты так создаешь и конфигуришь абстрактную фабрику или прям в статик-фактори метод ебашишь? Непонятно. Может лучше фабрикой создавать билдер хотя бы? Типа:
DragonBuilderFactory.create(SwimmableDragon.class).size(123).name("").build();
Подробнее на пиках. Методы create1 и create2 делают одно и то же, первый чуть проще для понимания и читабельности, второй чуть более универсальный и профессиональный.
468 1752302
>>52241
Храни в base64 или векторе.
469 1752305

>calling .persist() will not automatically set the id value. Your JPA provider will ensure that it is set before the entity is finally written to db. So you are right to assume that the id will be assigned when the transaction is committed. But this is not the only possible case. When you call .flush() the very same will happen.



>Thomas



>Update: Pay attention to Geek's comment, please. -> If GenerationType.Identity is used, the id will not be set by the provider before the entity is written to db. In this case id generation happens during the insert process on db level.



Почему ответ на такой очевидный вопрос приходится выискивать по крупицам. Есть аннотация, пиши в неё, кто генерирует ключ. Нахуя фреймворку эта информация? - прост))
470 1752306
Аноны, раскидайте по понятиям: реактивность, webflux, Kafka, event-based, корутины. Я по отдельности все понимаю, но как все эти термины живут вместе? Вот реактивность - это всякие mono и flux-ы - где там events? Пацаны, кто честный, поясните!
471 1752307
>>52306
корутины есть в шарпах и котлине, но не в джабе, не?
472 1752310
>>52241
На вордпрессе пили, проще ничего нет, а про хостинг это тебе в хостинготреды в /web
473 1752311
Похоже, я просто не разбираюсь в SQL. Оказывается, секвенсы не привязываются на уровне БД к ключам. Вот зачем аннотация-то.
Ну, в своё оправдание могу сказать, что никогда до этого не сохранял из кода сущности с ключами.
474 1752312
>>52253

>>сколько его надо изучать, чтобы знать на джуна


>>Пару вечеров, если знаешь жабу


Хуя тут гении сидят, а еще за пару вечеров осилишь ангуляр и кафку?
475 1752313
>>52307
Точняк, совсем я поехал с этой теорией.
476 1752316
>>52244
На самом деле его не так круто надо знать, рили пару вечеров как анон выше писал. Надо понимать зачем этот Spring нужен, что за DI и IOC такие, как конфигурируется и основные аннотации. Почитай по верхам и попиши примерчики. Сможешь ответить на базовые вопросы типа какие скоупы бинов в Спринге и все, велком он боард.
477 1752321
>>52305
Да, потому что сама суть всех ORM, включая легаси хибернейт, всегда состоит в подходе "Верь в магию и не задумывайся".
478 1752322
>>52312
Я бы вкинул пост, как одна тян хаскель за вечер обещала выучить, но у меня нет скрина.
Ты ж не знаешь его уровень. Может он опытный жаба синьёр, пару статей прочитает, аннотации запомнит и будет хуярить круды как чумачечий?
479 1752323
>>52306
Все баззворды в одном месте собрал.
480 1752325
>>52323
Далеко пойдёт, если догадается их себе в резюме вставить.
481 1752326
>>52322
Обычно джуна от сеньора несложно отличить за простой беседой.

Мимо провёл сотни интервью в крупный вендор.
482 1752328
>>52326
У меня был один его пост.
java.PNG2 Кб, 259x54
483 1752344
Кто-нибудь поделится паком книжек про спринг? Pro Spring 5 последняя же? Есть хороший скан?
А я могу куда-нибудь закинуть свой пак с книгами по Java.
484 1752353
>>51473
Философия Java была написана в 2006. Т.е. ещё до семёрки.
485 1752355
>>52344

>>Есть хороший скан?


Есть электронная версия.
rutracker.org/forum/ viewtopic.php?t=1748467
Там же был какой то мегапак всех книг по жаве, его ищи сам.
486 1752360
assert в коде вообще нужны? Есть же JUnit.
487 1752362
>>52360
Более того, они и не работают.
image.png36 Кб, 618x408
488 1752367
>>52360
Нужны, даже в классах sdk они есть.

>>52362
Работают, ключ -ea.
489 1752368
>>52367
А без ключа хуй пасасешь)
490 1752371
>>52360
Первая строчка в джавадоке

>>Assertion utility class that assists in validating arguments.


намекает что ассерт спользуется спрингом для валидации.
491 1752372
>>52344
В группе вк есть куча книг, там возьми.
На торрентах много.
Всё гуглится легко же.
492 1752375
>>52371
Ты пидор? Ты нахуя это сделал?
493 1752376
Вот например я пишу:
UserRepository extends CrudRepository
потом пишу метод
FindByTag(tag);

а потом в контроллере пишу
@Autowired
private UserRepository userRepository;

И пользуюсь методами save, например и тем же FindByTag которые реализованы где? В каком классе?
494 1752378
>>52360
Просто забудь об этом кейворде и никогда не используй, как не используешь strictfp, volatile и transient.
495 1752379
>>52376
В смысле? А ты че репозиторий не имплементировал?
496 1752380
>>52376
В прокси-классе, который ты не видишь, сгенерированном спрингом. Верь в магию и не задумывайся.
497 1752382
498 1752385
>>52382
Там пропустили значит. Как ты себе это представляешь, не может же класс работать без имплементации.
499 1752386
>>52385

> не может же класс работать без имплементации


Ты недооцениваешь спринг, он вообще парсит название метода из интерфейса и генерирует SQL-запросы ио нему.
500 1752388
>>52386
Вранье.
501 1752389
>>52388
А ты запусти.
502 1752390
>>52389
Не хочу. Просто ты всрешь. Это даже не запустится.
503 1752391
--------------- 500 ПОСТОВ ---------------------
Хеллоуворлды закончились, раскапываем сервера приложений и ламповую 4 джаву без аннотаций.
--------------- 500 ПОСТОВ ---------------------
504 1752392
>>52390
Ты не представляешь, как бы я хотел, чтобы ты был прав.
505 1752394
>>52390
Просто 5 букв: C G L I B
Покормил)
506 1752421
>>52278

Ну, если у тебя зеон платинум долбиться в строчку от твоих паттернов по госту, то придется жрать мазик.
507 1752423
>>52421
> Соточку

Самофикс
508 1752425
>>52375
что сделал? джавадок прочитал?
509 1752426
>>52425
Анона обманул.
510 1752427
>>52421
Или купить Graal VM
511 1752431
Делал обычную 1500*1500 картинку из множества Мандельброта глубиной 10к с помощью BigDecimal 50 точностью и 100% процессора(на хуевом ноуте правда) 80 ебаных минут. Интересно было бы сравнить тоже самое в C, может быть потом перепишу алгоритм (изначально не хотел писать на C, чтобы дрочить кор).
На ЮТ выкладывают ролики с 700кк глубиной/точностью 1e1500, пиздец, хотя у меня подозрение, что там считают на суперкомпьютерах.
512 1752433
>>52431
Поделись хоть картинкой, как это выглядит. Лень гуглить.
513 1752442
>>52376

>UserRepository


Неправильно.
11.png973 Кб, 1876x1080
514 1752443
515 1752445
>>52443
Спасибо, красиво! Знакомый фрактальчик в центре, часто его вижу везде.
516 1752447
>>52431
Алгоритм покажи.
517 1752452
>>52447
https://dumpz.org/a2rzx7rAwnCN
говнокод жесткий
Буду рад замечаниям как надо.
sav.png147 Кб, 1920x1038
518 1752458
>>52426
Ну вот же он.
519 1752459
>>52452
Там опечатка
int col = max 16 581 375 - pal * iter;
image.png33 Кб, 896x357
520 1752462
>>52452
Я в свинге никак, что такое класс Picture? Если в 131 строке у тебя в цикле вывод каждого нового пикселя сразу на экран, то могу сказать по опыту десктопных приложений на других языках что это очень затратно. Рисовать надо в памяти, и выводить по фреймам или по строкам хотя бы. Создавать класс Color тоже можно не надо, лучше сырой массив интов. Это статическая картинка вообще или анимация? Если статическая, то даже прорисовка каждого отдельного пиклеля из 1500*1500 это ничто по сравнению с 80 минутами, и выигрыша не получишь. Я просто волнуюсь не перерисовывают ли они там друг друга, т.е. если один пиксель из картинки рисуется только один раз то все ок, а если нет то точно есть пространство для оптимизации.
521 1752470
>>52462
Взял первый попавшийся класс картинки https://introcs.cs.princeton.edu/java/stdlib/Picture.java.html
вроде он не предназначен для постоянной перерисовки. Задумака такая, чтобы можно было перемещаться по множеству, нажимая клавиши на клавиатуре (с даблом неплохо работает даже с этим классом). А с BigDecimal время улетает в небеса, так что прорисовка отдельного пикселя ничто. Не разбирался, как он устроен, но, вроде, там части в Long int хранятся, точность 50 - больше двух переменных нужно из-за этого сильный скачок, возможно, хотя не разбираюсь. Завтра на вопросы отвечу, если будут, сегодня уже спать иду, анонсы.
image.png47 Кб, 1122x488
522 1752480
>>52470
В ArrayList при создании передавай предполагаемое количество элементов, а то он успевает несколько раз расшириться.
Работа с многопоточностью тоже детская:
- слишком много потоков, количество потоков делай по ядрам процессора
- с тредами не работай, используй экзекуторы
- вместо thread.join() могу посоветовать CountDownLatch
523 1752483
>>52480
>>52470
Если жесткая именно математика и много создается там объектов, то посмотреть как уменьшить количество создаваемых объектов. Еще можно от чисел с плавающей запятой перейти к целочисленным, тут придется исправлять алгоритм, всякие там ухищрения. Кстати я не знаю как там внутри BigDecimal работает, может там уже по максимуму оптимизировано. И самое главное - разбить код на виртуальные секции и измерять куски кода по времени, смотреть какой метод/цикл выполняется гораздо дольше остальных (бутылочное горлышко) и оптимизировать сперва именно там.
524 1752556
>>52480
>>52483
Ок, спасибо, анон.
525 1752563
Всем привет
526 1752740
Когда использовать sinchronized-модификаторы у метода, а когда нет, если планируется запускать в многопоточной среде? Если есть сайд-эффекты, то однозначно да, а если есть только переназначения локальных переменных внутри самого метода, нужно ли синхронизировать его вызовы? (идея еще подчеркивает такие переменные чертой снизу)
527 1752750
>>52740
У каждого треда свой стек с локальными переменными.
528 1752754
А есть те кто устроился на работу без знания копьютер сайнс, sicp и алгоритмов ??
529 1752755
Есть некий класс который работает с бд и высирает определенную entity, с недавних пор появилась вторая entity и у меня появился выбор:
1)Сделать ещё один класс который делает почти тоже что и первый (с очень маленькими отличиями) для второй entity
2)Сделать так чтобы эти ентити ебаные имплементировали пустой интерфейс без нихуя и переписать "некий класс который работает с бд и высирает определенную entity" так чтобы он высирал этот интерфейс вместо entity.
На какой стул сесть?
530 1752756
>>52272

>Ну или хотя бы Барух


Гугли гиюр.
531 1752757
>>52750
А почему тогда идея их подчеркивает? просто акцентирует внимание что это говно не финальное?
532 1752758
>>52754
Нет. Всех начиная со джуна спрашивают первую часть sicp наизусть.
533 1752761
>>52757
Может, они не используются? Наведи и прочитай, что она пишет.
534 1752764
>>52758
Почему этого тогда в требованиях на вакансию не пишут?
535 1752773
>>52754

> копьютер сайнс


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

> sicp


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

> алгоритмов


Изучал, более того, часто спрашивают на собесах. Но 20 сортировок и 30 деревьев не задрачивал.
536 1752781
>>52773

>Изучал, более того, часто спрашивают на собесах.


А что изучал? И что спрашивают? И главное, зачем?
537 1752785
>>52761
Когда какой-то член не используется, есть свой паттерн шрифта в Идее - такой член пишется темно-серым цветом. Подчеркивание делается для полей, которые инициализированы, но после изменены:
int someValue = 0;
someValue = 5;
538 1752794
>>52781

> что изучал?


Стандартная хуйня - несколько сортировок, обход деревьев, бинарный поиск и т.д. Учится быстро.

> И что спрашивают? И главное, зачем?


Могут так и спросить - как работает такая-то популярная сортировка. Или попросить написать её. Это минимальный фильтр, так проверяют, что чел может в алгоритмизацию, а значит, может решать хоть какие-то рабочие задачи. Иногда ещё просят решить задачу, с популярными алгоритмами в целом не связанную, но тоже про алгоритмизацию, в духе "есть двумерный массив, заполненный таким-то способом, нужно оптимально найти такие-то значения". Вот.
539 1752804
>>52764
потому что я сеньор пиздобол на дваче. конечно же никто не будет спрашивать эту теоретико-академическую хуиту.
540 1752806
>>52794

>обход деревьев


Нас в универе заставили свой класс сбалансированного бинарного дерева писать. Хотя я обычное бинарное дерево с прошлой лабы достаточно быстро переписал в сбалансированное.
541 1752822
>>52806
Ну и считай тогда, что уже знаешь это. Освежить память будет несложно, если понадобится.
542 1752826
>>52822
Это да, правда, на 1 курсе высирать лабы на 1000 строк кода немного пиздецово для мозга, ахуевающего все это в голове держать за раз. Хотя, может, я просто туповатый.
543 1752837
>>52826
Нам это только на 2 курсе давали. На 1 были простейшие лабы на 30 строчек, затем постепенно усложнялись.
544 1752843
>>52837

>На 1 были простейшие лабы на 30 строчек


Ох, май. Ты ещё наши контрольные не видел. На препода в конце 2 семестра почти вся группа жаловалась.
545 1752855
>>52843
У нас контрольные были терпимые, потому что у нашей группы был я, с преподами тоже повезло.
546 1752870
А у меня на 2 курсе вообще не было деревьев.
547 1752878
>>52826
1к строк кода на Balanced BST, не многовато ли?
548 1752899
>>52878
У меня вывод дерева в файл дохуя занимает c помощью велосипедов. Еще постоянная ебля с выделением/освобождением памяти, так как писал на C-массивах и указателях. Плюс меню и доп задания. всего 1042 строчки
https://pastebin.com/esheTgEw
549 1752928
>>52899
Блять, C-массивы и дерево, тут я обосрался уже.
550 1752993
>>52928
Пошел вон, ты профнепригоден
image.png10 Кб, 542x284
551 1752995
Релейшены в JPA - мозголом куда хлеще, чем генераторы, с которыми, по сути, все сложности заключались в моих пробелах по части устройства БД.
Вот на пикче. Этот маппинг значит, что в таблице vehicle будет создан столбец с айдишником владеющего им patient? И JPA будет привязанные vehicle получать именно по этому столбцу? А в таблице patient ничего не поменяется?
552 1752996
>>52995
Ты больной?
553 1752998
>>52996
Да нет вроде. Каша в голове просто пока. А что тебя смутило?
555 1753016
>>53002
Спасибо! То есть, получается, я всё-таки всё правильно понял насчёт этого способа маппинга.

>>52996
И тебе спасибо, благодаря тебе я стал немного менее восприимчив к самоутверждающимся на ньюфагах желчным ребятам.
556 1753019
>>53016
Я просто не понимаю, загуглить вопрос и открыть первую попавшуюся мурзилку - это сложно? Надо высрать свой убогий вопрос на двач?
557 1753021
>>52899
Годный ASCII-вывод, спасибо за объяснение, так и знал что дополнительные фичи были.
558 1753023
>>53019
Я их полдня уже читаю. Может, не выспался просто сегодня, но как-то эта тема пока реально кажется труднее, чем всё остальное.
559 1753042
>>53021

>Годный ASCII-вывод


Благодарю.
560 1753046
>>53042
А повернуть на 90 градусов слабо?
561 1753049
>>53046
Изи, оно сначала в массив записывается
Безымянный25.png24 Кб, 859x923
562 1753054
563 1753086
>>52995
Вспоминаю JPA как страшный сон. ORM не нужны.
564 1753197
>>53086
А спринг вспоминаешь вечерами?
565 1753230
>>52755
Что будешь делать когда появится ещё 2 энтити?
566 1753234
>>53023
Зачем читать полдня, если можно после первой статьи открыть иде написать пару строк кода и посмотреть как все работает?
567 1753236
>>52755

>ебаные имплементировали пустой интерфейс


Лучше не имплементируй интерфейс, а наследуй какой-нибудь класс. Например, Object.
568 1753241
>>53236
Лучше удали такой пост с этого треда.
569 1753243
>>53241
Аче)
570 1753254
В мавене есть плагин с большим блоком configuration с кучей параметров. Можно его как-то вынести в отдельный проект, и потом переиспользовать в других помах? Или как-то иначе переиспользовать?
571 1753272
Я, конечно, не отрицаю того факта, что я тупой, но как мне такой SQL-запрос написать на QueryDSL?

select *
from affiliate_programs ap
left join affiliate_programs_statistics aps on ap.id = aps.affiliate_program_id
where ap.deleted = false and aps.date between '2020-07-20' and '2020-08-20';

P.S. Там еще перед .from(affiliateProgram) потерялся .distinct()
572 1753276
>>53254
А вот никак, насколько я знаю. Даже в двух профилях одного помника приходится копипастить.
Можно сделать родительский помник и настроить в нём, но если в помнике уже используется другой родительский помник, то облом.
Ещё некоторые плагины можно настроить через отдельный properties-файл, но там только ключи-значения, сложную иерархию тегов не вынести.
573 1753296
>>53272
Ты можешь нах-=хачепичаочеа\оевитекчоуягквьуквотмна
574 1753370
начал недавно учить джаву. Можете посоветовать где задачки брать?
по сложности желательно по возрастанию.
575 1753385
>>53370
Откуда вас столько начинающих? Я почти год назад тут сидел, новичкам похуй было на джаву.
576 1753388
>>50239
reduce он для другого, это если тебе с двумя шлюхами надо что-то сделать. Например, запилить всем наибольший размер.
А так, вот, без коллекта можно так сделать
long countOfSizes = whores.stream()
.mapToInt(Whore::getTitsSize)
.distinct()
.count();
577 1753416
>>53385

> новичкам похуй было на джаву


Ну не сказать, чтобы прямо совсем похуй. Были новички.
578 1753422
>>53388
я еблан и там уже посоветовали этот метод. Могу сказать что проверил на списке из 999999 шлюх, посчитав макс\мин\среднее за 1000 подходов для трёх вариантов решения этой задачи. Результаты на скрине, этот метод лучший.
579 1753587
Если уж тут снова про стримы, тоже спрошу: можно ли как-то вычислить функцию между двумя соседними элементами стрима, и аккумулировать где-то сумму результата операции? Например, есть Лист городов, и функция getDist(town1, town2). Как с помощью стрима добыть сумму всех дистанций между последовательными городами?
580 1753624
>>53587
Свёрткой. reduce.
581 1753628
>>53624
И как? как вызвать метод не принадлежащий объекту стрима, еще и оперирующий над его двумя членами? У самого Town нет метода getDistToNext и поля nextTown, это было бы полной хуитой с точки зрения архитектуры.
582 1753721
>>53628
Не слушай его - никак это стримами не сделать, кроме forEachOrdered().
reduce() вообще не так работает, у тебя есть условный ноль, есть бинарная операция и бинарная операция по комбинированию предыдущей операции.

Если ты хочешь это именно функциональным стилем, то тебе нужна операция типа zip, которой нет в Яве, но есть в Скале или сторонних библиотеках. https://stackoverflow.com/questions/17640754/zipping-streams-using-jdk8-with-lambda-java-util-stream-streams-zip
583 1753735
Сап /ja/, выучил я вроде кор вернее прочел 2 тома Хорстмана, теперь хочу написать пет прожект, а что он должен делать и какой он должен быть не знаю, поэтому прошу совета у мудрого анона, пожскажите плиз тему.

Пы.сы. я понимаю что одного кора мало
584 1753738
>>53735
Гугли "Методы программирования" Блинова, там на каждую тему есть упражнения.
585 1753751
>>53735

> прочел 2 тома Хорстмана


Этого вполне достаточно.

> теперь хочу написать пет прожект


Интересного на одном коре много не сделать (хотя Stingray42 безуспешно пытается). Потыкай базы и спринг и пили какую-нибудь социалочку.
586 1753769
>>53587
Котлин, zipWithNext
587 1753773
>>53738
Спасибо больше, очень интересная книга
>>53751

>пили какую-нибудь социалочку


В смысле соц сеть свою?
588 1753787
>>53773
Да. Ну или борду, но потом на собесе про неё не рассказывай.
589 1753807
>>53787
Хорошая, интересная и сложная идея, но лучше пока торопиться не буду и попробую сторонние вещи > базы и спринг
подучить.

>на собесе про неё не рассказывай


лол, я почему то уверен что 95% айтишников это двачеры или бывшие двачеры
590 1753809
Если у меня страницы рендерятся на стороне сервера это у меня соап чтоле? Можно ли такой апи автоматически документировать, чем то вроде свагера для реста?
591 1753849
>>53807

> Хорошая, интересная и сложная идея


Ну, она довольно популярная. Разве что необычные интересные фишечки придумать.

> лол, я почему то уверен что 95% айтишников это двачеры или бывшие двачеры


У меня все коллеги - нормисы лет 30-и. Даже аниме почти никто не смотрит, что там двач.
592 1753856
>>53809

> Если у меня страницы рендерятся на стороне сервера это у меня соап чтоле?


Нет, это разные вещи, это как сравнивать json и html. Соап - это как рест, но подход несколько другой. Рендеринг же - это просто генерация html-нек на сервере, чтобы их было видно в браузере.
kgjb.jpg19 Кб, 635x70
593 1753987
>>53721
>>53769
Спасибо. Интерес был больше академический, Котлин пока хавал только поверхностно еще захотелось но у меня нет пока перспектив на него в работе, а жаль. В итоге запилил все в обычном fori
594 1754000
>>53856
Так как мне обозвать свой сервис если я не джейсоны раздаю, а хтмл сгенереный тимлифом отдаю? Это рест или что? Я просто не понимаю как это гуглить. как уже писал, мне нужен свагер, который переварит обычный @Controller
595 1754028
>>54000

> Это рест или что?


Это серверный рендеринг. Так и называется.
Но хочешь ты чего-то странного. Как ты собрался документировать контроллеры для вебни? Это не апи. Пользователь не будет лезть в доки и читать, что там хтмл-страница передаёт под капотом. Текст ссылок на сайте - вот и вся документация.
596 1754070
>>53987
А вот как это выглядит на скале

val numbers = LazyList(1, 2, 4, 8)
numbers.zip(numbers.tail).map { n => n._2 - n._1 } reduceLeft (_ + _)
597 1754080
>>54070
А на груви как?
598 1754082
>>54070

>numbers.zip(numbers.tail).map { n => n._2 - n._1 } reduceLeft (_ + _)


И вот как, глядя на это строчку, что-то понять кроме того, что где-то в жопе застрял плюс
599 1754083
>>54082
А я думал + это ascii-сфинктер
600 1754084
>>54080
Так же как и на джаве - там стримы точно такие же.

>>54082
Для ранимых вот версия без жопы
numbers.zip(numbers.tail).map { n => n._2 - n._1 } reduceLeft { x, y => x + y }
601 1754098
>>53587
>>53721
>>53987
Бля, ну я теперь просто обязан показать вам как это делается на стримах не делайте так в продакшоне.
602 1754099
>>54084
Скала это вообще рабочая вещь, или какая-то околоакадемическая хрень? Есть ли смысл вкатываться с Джавы я каких-то целей? Насколько сложно изучить в сравнению с джа?
603 1754100
>>54098
Я что-то нажал в идее, и у меня отвалились эти подсказки внутри стрима, какой тип стрима сейчас идет. Не подскажешь как включить?
image.png6 Кб, 307x115
604 1754103
>>54100
Ты комменты не пишешь напротив стрима? Например это их отключает.
605 1754112
>>54099
Если тебе сам язык у функциональщина не нравиться - то не стоит.
Работы мало, порог вхождения высокий. Да он позволяет писать код короче и выразительней, но только после нескольких лет обучения. А вначале у тебя будет крайне кривой скала код в стиле джавы. у самого такие проблемы
606 1754113
>>54098
А зачем boxed() ?
607 1754116
>>54098
Поздравляю с достижением 3000 строк в тестах для блаженных.
reer.jpg10 Кб, 722x80
608 1754117
>>54103
да нет. просто чистый код. ближайший коммент выше строк на 20
609 1754118
>>54113
Особо незачем чтоб в prevBuf присваивать без автобоксинга.
Но по сути операций анбоксинга здесь будет больше и лучше оставить сырой стрим микрооптимизации!!.
610 1754120
>>54116
Спасибо) Это было достигнуто еще на шлюхах-драконах >>52298 но никто не заметил.
611 1754122
>>54117
Так ты каждый вызов с новой строчки делай.
мимо
612 1754125
>>54117
Так подсказки появляются только когда у тебя по одной операции на строку. И когда у тебя больше кажется трех (настраивается) разных стримов, т.е. для многочисленных операций возвращающих один и тот же стрим тоже не показываются.
613 1754126
>>54122
>>54125
Да я эту строчку сговнячил только что на коленке как пример. На самом деле там полно стримов есть, но давно уже пропали подсказки. И как ее не перестраивай по строкам - ничего не появляется. Олсо, раньше такой хинт вылазил и для записанного в одну строку длинного стрима.
Олсо, подобное есть в вызове конструктора, когда подсказываются названия аргументов. Эта фича вполне себе работает. А хинты стримов отвалились(
614 1754127
>>54120
Ты типа тот анон, какое-то тебе даже имя тут придумали еще? Типа, подсказываешь всякое имбецилам вкатывальщикам лайк ми
616 1754130
>>54125
>>54100
О, я понял что тебе поможет.
Два раза Shift -> show method chain hints -> ON
А отключаются еще проще: правой кнопкой на них и снять галочку, так что да, это действительно ты что-то нажал и все пропало.
617 1754131
>>54127
Это один какой-то шизик ему имя придумал.
618 1754135
Миша - хорошее имя, ассоциируется с добротой.
619 1754136
>>54130
>>54128
Спасибо, аноны?. Я кажется понял: просто у меня на одном компе комьюнити эдишон, а на другом алтимейт. Я похоже на ультиме это только видел, а здесь и забыл что на попиленной сижу. У попиленной даже таких пунктов не появляется в указанных местах.
620 1754140
>>54127
Да я не только имбецилам подсказываю и никогда не называл вас имбецилами :3.
621 1754142
>>54070
>>54098
Смотрю я на ваши forEachOrdered и на ваши жопы и еще больше радуюсь тому, что пишу на котлине
622 1754143
>>54140
А у тебя часто собеседуемые заваливаются на многопоточности?
623 1754144
>>54142
Держи в курсе.
624 1754145
>>54142
Да блин, Миша вообще-то сказал что такое говно не для продакшена, это просто упражнение в стримоёбстве. Так-то задача на обычном цикле решается за три строчки >>53987
для чего никакой котлин не нужен
625 1754148
Если любите стримы - пользуйтесь библиотекой StreamEx.
626 1754151
>>54140
Кем работаешь? просто интересно стало. Давно в этих тредах?
627 1754154
>>54151
Он java language architect в ORACLE.
628 1754162
>>54145

>задача на обычном цикле решается за три строчки для чего никакой котлин не нужен


Тут есть такой нюанс, что на котлине в функциональном стиле это тоже максимум три строчки, только более удобные, потому что одно выражение, и более понятные, потому что декларативно.
image.png18 Кб, 317x158
629 1754167
>>54143
Да, это одна из самых сложных тем. Можно с первого-второго вопроса уже все понять.
Зачем нужен volatile?
Если он такой хороший, почему бы не ставить его везде?
Но я не злой на самом деле, часто приходится "вытягивать" - видно что понимают, но объяснить толком не могут.

>>54154
Вы мне льстите, уважаемый. Я никогда не сообщал такой информации)

>>54151
Сеньор в ))). Часто дают беру собеседовать кандидатов. Нет, кстати, не так давно, треда с 16го. Не знаю чому раньше не додумался поискать такой уютный тематический тредик как ваш наш.
image.png8 Кб, 482x86
630 1754171
>>54167
Сучка двач, красиво же было, смешно.
631 1754173
>>54167
сениор и тимлид это разные вещи же?
632 1754176
О, у нас тут в треде аж целый всамделишный сеньор! Сейчас восторженные дети его обступят и завалят вопросами
633 1754178
>>54167

>Зачем нужен volatile?


В основном для мелких атомарных операций типа x += y, и атомарной записи в лонг и дабл.

>Если он такой хороший, почему бы не ставить его везде?


Потому что не обеспечивает достаточную потокобезопасность.. Короче, надо использовать AtomicXXX и не задавать вопросов. Я прошел?
image.png228 Кб, 1454x533
634 1754179
>>54173
Так точно, разные.
635 1754180
>>54179
а кто такой совтваре енжинер?
636 1754183
>>54167
Как понять, что я достаточно знаю JabaCore чтоб посягать на JJuniorа? что еще за технологии нужны чтоб стать макакой такого ранга?
637 1754184
>>54180
Это на международном так погроммисты называются.

>>54178
Нет, нет и как результат - нет.
638 1754187
>>54184
Эх, читал ведь всего Гётца, и все коту под хвост.
image.png30 Кб, 723x216
639 1754194
>>54187
Блин, ну сорян. Частично что-то верно, но я бы прикопался и начал раскапывать. Например, самое первое предложение:

>В основном для мелких атомарных операций типа x += y


Здесь я удивленно переспрошу считаете ли вы += атомарной операцией. Ну и покатился диалог)
640 1754199
>>54194
А, ну я имел ввиду, операции, которые с volatile будут атомарными, воть. Надо перечитать, в общем, чтобы уложилось все в голове нормально.
641 1754203
>>54183
Сложно сказать. Вопросы и там и там задаются одинаковые (но дойти до последних могут не все), а по ответам ты набираешь баллы. Вон анончик выше из двух вопросов ответил где-то на 0.2/2, это приблизительно потому что в реале не блиц "вопрос-ответ", а добивание вопроса полностью, вытягивание наводящими вопросами/примерами. Что ты точно обязательно должен знать это многопоточность, стримы, работа с I/O (и консоль, и файлы, и сеть), что у программ есть stdin/stdout, минимальное устройство JVM - GC + JMM, околоплавающие штуки типа мавена, консольные команды (ключи) на запуск джарника, classpath, указание размера доступной памяти, выбор GC, и даже ключ, который обязан знать каждый джун, который поможет тебе найти чому программа падает с OOM (знаешь?). Я считаю это кор. Потому что тут только джава. Тут мы не затронули ни спринг, ни хибернейт, ни EE.
642 1754204
>>54167

>Зачем нужен volatile?


>Если он такой хороший, почему бы не ставить его везде?


В приличных домах уже считается плохим тоном такое спрашивать, слишком избито.

Лучше спросите как сделать лок на двух волатайлах.
643 1754208
>>54203
я пошел вздернусь
image.png446 Кб, 1016x988
644 1754215
>>54208
>>54183
Еще могу посоветовать вот такую книжку как ориентир на джуна не только третья глава, а вся книжка. Только осторожно, сама книжка содержит хуиллиард ошибок, вот список:
https://www.selikoff.net/java-oca-8-programmer-i-study-guide/

Только обязательно добавить многопоточность и стримы, а то оракл почему-то считает что джунам можно этого не знать. Забавно. Ну и вон те штуки околоплавающие которые выше озвучил.
image.png243 Кб, 400x400
645 1754225
>>54204
Спасибо, обязательно спрошу, только объясни что ты имеешь ввиду? На ум сразу приходит double-checked locking, но там всего один волатайл, и вряд ли ты так ошибся. Может быть ты имелл ввиду как сделать дедлок? Но тут прямой связи с волатайлами нет.
647 1754245
>>54225
ну это >>54237 так стеб, на серьезеых щах нельзя такое спрашивать.

но можно спросить, что такое fair-unfail lock, j.u.c.Lock какой по умолчанию и почему.
648 1754250
>>54203
Выходит чтоб вкатиться нужно отложить спринг и прочее в сторону и начать задрачивать теорию кора и олимпиалные задачки?
649 1754255
>>54203
Все же, джуниора нанимают работать. Потому не обязательно знать, как в точности работают JVM и GC. Да и ключи для запуска жарника никому не нужны (ну, в том плане, что тебе нужно запустить -> идёшь в доку и все делаешь). И уж тем более запариваться с выбором сборщика не задача джуна.

Понимать принципы работы сборщика, в базовом виде, ну, пожалуй да, а остальное все не так важно. Важны стримы, важно понимание работы фреймворка, хотя бы на уровне того, почему тут мы возьмем аннотацию Service, а тут Component, важно знать о том, насколько странно иногда работает хибернейт и помнить про то, что иногда, все же, стоит написать запрос руками и т.д.. Джуна нанимают для работы. Да, он будет спрашивать и учиться на месте, но, все же, в первую очередь он должен уметь расширять кодовую базу, хотя бы на уровне крудов и т.д.
650 1754257
>>54255
>>54250
а вот задачки да. Алгоритмические надо бы решать без проблемно. Не на уровне "а уложись брат в столько-то метров и столько-то наносекунд", а, ну, тупо решать и уметь объяснить, почему ты решаешь именно так.
651 1754260
>>54167

>Зачем нужен volatile?


Чтобы happens-before нормально работал.
652 1754268
>>54176
Мы давно знали, что анон с 2к строками синьор. Ты ньюфаня.
653 1754275
>>54250
Не, вопрос был про кор, я и написал про кор. Спринг откладывать не нужно, если идешь туда где он используется, а это почти везде. Олимпиадных задачек я не приводил, там все реально нужное и в повседневной работе используемое, разве что I/O сети и файлов не в каждом проекте есть (обычно тут MQ для первого и логгер для второго). Алгоритмические это да, но не олимпиадные (поиск цикла в списке, уникальность числа в массиве, обязательно указать какая сложность это будет).

>>54255
Почти, но с некоторыми деталями я могу поспорить.

>не обязательно знать, как в точности работают JVM и GC


У нас обязательно. В точности нет, но в общих чертах да, даже джуну. Могут ли перемещаться объекты в памяти GC'ом? Stack/Heap. Связь значения Object.hashCode() с памятью никакой)). Да это за день учится в худшем случае, вы чо.

>Понимать принципы работы сборщика


А я не говорил про выбор, основы - да. Отличия мавена от градла, как посмотреть дерево зависимостей, какой смысол в <parent>.
Да, именно для работы, но каждый работодатель выбирает лучшего джуна всегда, потому что этих позиций не так много, основные места это мид и сеньор (может быть у вас не так?).

>>54237
Пасиба! Но я насчитал 3 (три) волатайла чтобы это работало. А ты говорил про два. Это вопрос с двойным дном? Может быть я ошибся, завтра свежим взглядом взгляну. Кстати пока ознакамливался то вспомнил что видел эту статью несколько лет назад, но за неиспользованием забывается.
654 1754295
>>54275
Кажется под сборщиком он имел в виду ГЦ.
655 1754310
>>54295
Тогда и правда пора спать.

>>54255

>ключи для запуска жарника никому не нужны (нужно запустить -> идёшь в доку)


Нда, только один момент: на собеседовании уже поздно (или рано, кому как) лезть в доки, а правильный ответ на этот вопрос "здесь и сейчас" показывает что ты реально сам запускал джарники, а не только зеленый треугольничек в IDE тыкал.
656 1754312
>>54310
А я мавеном все запускал. Сойдет за оправдание?
657 1754316
>>54312
Не совсем. Знание команд мавена это безусловно плюс, но это не отвечает на базовый вопрос: кандидат все-таки никогда не запускал джарник вне девелоперской среды.
658 1754318
>>54316
Просто запустить? java -jar чтоли? Или что-то более хитрое?
659 1754321
>>54318
Да, хотя бы java -jar. Удивлен? Интервьюер не знает твой уровень и пытается понять. Ты прошел первый этап. Далее скорее всего будет вопрос: а что делать если есть библиотечный jar, классы которого используются в основном jar'е?
660 1754325
>>54321
Ну я бы ответил
java -cp * -jar foo.jar
Наверное неправильно.
661 1754332
>>54325
Ну да, не ответил. Но ведь это показывает твою неопытность, так ведь? И ты ведь пойдешь сейчас гуглить этот вопрос и пытаться запустить самостоятельно если тебе это надо конечно же?
662 1754344
Работать с консолью это так низкоуровнево, что аж гнетет.
663 1754345
>>54316
Но я и правда джарник запускал в последний раз год назад, когда певые хелоуворлды писал.
А так или варник томкату подложить (через мавен автоматом после сборки, ибо мне лень руками его таскать), или через ембедед томкат спринга - зеленый треугольник. Там же можно и параметры прописать, только мне оно один раз пригодилось. Только я все равно не понимаю, зачем запускать из консоли, если можно запустить из идеи? Джуна то вряд ли допустят до деплоя.
664 1754346
>>54332
Я-то загуглю, конечно, оказался вопрос с подвохом но следующим же вопросом будет "как упаковать исполняемый джарник, если class файлы разбросаны по папкам разной вложенности" и т.д.
На этом очень легко завалить, потому что с современными IDE этих вещей почти не делают, а мозг забывает то, чем не пользуешься.
Команды мавена не в счет, их мы пишем и знаем.
665 1754349
>>54346

>но следующим же вопросом будет


Правильно мыслишь) Но тут не "валят", не депрессируй. Тут хотят понять насколько глубоки твои знания, что ты умеешь делать, уже точно делал 100 раз, что не делал, что хотя бы примерно представляешь как делать. Все надо говорить, мысли вслух приветствуются. Поэтому ответы вида "минус-цп-звездочка" и дальше пауза это плохо, рот не должен закрываться, нужно упомянуть что делал так, или не делал но предполагаешь что это заработает потому что точно знаешь что "цп это класспас" а вот дальше не совсем уверен т.к. в последнее время деплоил под томкет. Валят это где-нибудь в яндексе, а в других конторах обычно хотят все-таки взять человека, но всегда есть порог (про яндекс просто много жалоб что он там очень высокий).

>как упаковать исполняемый джарник, если class файлы разбросаны


Про именно упаковать я никогда не спрашивал, это очень такие детали, а вот то что джарник бывает обычный и executable это да, милое дело, и что хотя бы примерно нужно прописать чтобы получить последний. Тут опять отталкиваются от того что в продакшене надо: запустить джарник из консоли - надо, это запуск бут приложения; собрать исполнимый или библиотечный джарник - надо; собрать руками классфайлы и написать манифест - ну такое...

>>54345
Допустят без проблем до деплоя на тестовой среде, которых обычно не одна. Расти ты собираешься? Так вообще можно прийти к тому что запускают только девопсы, а программисты даже слов "ps rm cat grep kill" знать не должны. Нужно показывать интерес, показывать реальные скиллы: отмазка томкетом канает, отмазка спринг бута через зеленый треугольник - не канает.
666 1754360
>>54349

>джарник бывает обычный


И можно ли всё-таки запустить такой джарник без пересборки в исполнимый.

>>54345

>Там же можно и параметры прописать, только мне оно один раз пригодилось


Вот это желательно подтянуть, command line arguments испольузется часто и много, даже в бут приложениях с конфигом неподалеку (хотя бы указать где этот конфиг лежит, указать профиль, пароль, всякие другие вещи).
image.png122 Кб, 300x191
667 1754435
Учить кор по вопросам с собесов.
668 1754480
>>54099
Можно поучить для того, чтобы лучше понимать функциональщину и типы.
На работу хуй устроишься, там на полном серьёзе джунами берут джавистов с 5летним опытом.
669 1754496
>>52480
Переписал таким образом.
Уже лучше? Использовал вместо CountDownLatch CyclicBarrier. Но если чисто на код смотреть, не прыгая туда-сюда, не очень понятно, что происходит. В new Processing передаю CyclicBarrier один для всех потоков.
15511096833240.png125 Кб, 400x384
670 1754500
>>54435
Чему ты удивляешься? Я так и делал. Сначала с такой же ухмылкой думал, что ну никто в 2020 не будет спрашивать методы класса обжект.
Или про линкед лист.
Или про двоичные деревья.
Или про хешмапы. КАЖДЫЙ. ВТОРОЙ. СОБЕС. ЧТО БУДЕТ ЕСЛИ ЗАПИХНУТЬ В МАПУ ЭЛЕМЕНТЫ С НЕПРАВИЛЬНОЙ ФУНКЦИЕЙ ХЕШКОД???!???!?
Или про @Component и @Service.
Или про кучу и стек.
Или HTTP методы.
Или отличия 500ых от 400х ошибок.
Или разницу IP адреса и MAC адреса.
Или про джойны в бд.
Ну и конечно, никто не будет давать избитые задачки на нахождение факториала, простых чисел, развороты списков, имплементацию какого-нибудь дефолтного метода или фичи из кор жабы своими руками на бумажке. Эх, с улыбкой вспоминаю этого шизика из одного банка, который меня Optional на листочке попросил имплементировать. На всю жизнь воспоминания, только ради этого стоит по собесам походить, это лучше цирка, анон, я гарантирую. Особенно когда клоун это ты.
Я вот уже после второго собеседования выучил наизусть всю избитую хуйню. До сих пор где-то в телефоне лежит файл со шпаргалками про public/protected/private, О-большое для всех структур, транзитивность, рефлексивность, SOLID, полиморфизм, наследование, инкапсуляция...
671 1754586
Бля нахуярил говнокод на пиздоне, как его можно встроить в java скомпилировать и запускать на пука?
672 1754646
>>54275

>может быть у вас не так?


Мидлов, конечно, значительно больше. Но, в целом, джунов много, растут быстро. Приходят, уходят. У нас и со стажировками программы есть, так что молодой крови достаточно. В целом, мне сложно сказать, зачем джуну может понадобится большая часть перечисленных теоретических вещей, ну, а если понадобится - загуглит или спросит. Для того наставники и есть.

Адекватен, нормально решает алгоритмические задачи и может написать простенький спринг-бекенд - в принципе, можно начинать работать и подключать к проектам.

ну, опять же, так у нас заведено, всегда может так оказаться, что в какой-то компании джава-бекендеру требуется знать как работают указатели в C++, просто потому что там считают, что это основы без которых нельзя писать программы
673 1754785
С чего начать что бы писать приложения для себя? Может сайт или бесплатные курсы есть?
674 1754791
>>54785
Любой сайт-мурзилка, когда изучишь основы, переходи к Swing.
675 1754795
Ещё кто-то Electron советовал, если в вебе шаришь.
676 1754796
>>54791

>сайт-мурзилка,


Че?
Screenshot20200718-17395001.jpg452 Кб, 1080x1910
677 1754801
678 1754811
>>54796
"Мурзилка" это значит поверхностно. Тот же метанит, прекрасный пример. Чтобы начать вкатываться хорошо подходит, любой даун осилит.
Но дальше всё равно придётся книги читать, мурзилками не отделаешься.
679 1754815
>>54811

>Но дальше всё равно придётся книги читать, мурзилками не отделаешься.


Двачую и 90% на английском.
680 1754822
>>54791

> переходи к Spring


Пофиксил
sage 681 1754828
Ну что, стрим-макаки, успокоились наконец?
682 1754839
90% читаешь тред, 10% учишь жабу.
683 1754840
48% задаешь вопросы по стримам.
684 1754851
а 52 - про легаси спринг дату и легаси хибернейт.
685 1754867
>>54496
Пожалуй самое главное - есть ли выигрыш в производительности?
А так да, эститетически стало намного лучше, но еще есть над чем поработать. Начнем с более простых вещей.

1) Количество ядер можно получить так: Runtime.getRuntime().availableProcessors(). Должно дать 12 в твоем случае, проверь.

2) Цепочка if-else-if страшненькая, наверняка можно переписать хотя бы на свиче (возможно чуть подправив логику)

3) Бесконечный цикл в Processing.run(), отсутствие (видимых на скринах) условий выхода из потоков. Не надо так.

4)

>вместо CountDownLatch CyclicBarrier


Вот честно не знаю, так то они разные и тут ты немного изменил прежнюю логику, возможно и правда больше подошел CB, но я все еще сомневаюсь. CDL позволил бы не делить на 12 кусочков (processings), а оставить как было - 50, или поиграться с числом дальше, потыкать другие варианты. Т.е. да, задач получается больше чем потоков, это нормально, каждый поток будет выдергивать из очереди задачи пока они не кончатся. Но если в твоем случае можно разделить исходную задачу на подзадачи по количеству потоков возможно так будет даже лучше. Также CDL позволит убрать костыль из п.5

5)

> Thread.sleep(20000);// main program run time


Это конечно костыль. Здесь ты хочешь остановить главный поток чтоб подождать потоков на экзекуторе. Способа два.

5.1) Ждать завершения экзекутора
executorService.shutdown(); // не убивает сразу и НЕ отбрасывает задачи которые уже в очереди
executorService.awaitTermination(20, TimeUnit.SECONDS);
executorService.shutdownNow(); // отбрасывает задачи в очереди и пытается остановиться чуть более жестко

Способ по поведению полностью аналогичный твоему но более правильный: ждем 20 сек, ниче не происходит (экзекутор все еще работает, т.к. условий выхода из потоков нет, внутри Processing.run() бесконечный цикл), прибиваем экзекутор. Кстати в реальной жизни этот алгоритм (с бесконечными потоками) сломан, т.к. shutdownNow() (сюрприз) не может сделать ничего сверхестесственного по убийству потоков, и если они у тебя в коде не завершаются сами или повисли то экзекутор никогда не остановится -> утечка памяти и ресурсов

5.2) CDL
Здесь главный поток может легко просто сделать cdl.await() и все, ждем завершения задач. В общем случае это выглядит как то так:
int cycles = 0;
while (cycles < 10) {
CDL cdl = new CDL(12);
for (0..11) { executorService.submit(...); }
cdl.await();
cycles++;
}

В данном случае в Processing.run() нет бесконечного цикла, метод будет спроектирован так чтоб рассчитать все и завершиться. Processing объекты можно сделать одноразовыми или переиспользуемыми, не суть. Такой способ (с конечными вычислениями в потоках) более предпочтителен.
685 1754867
>>54496
Пожалуй самое главное - есть ли выигрыш в производительности?
А так да, эститетически стало намного лучше, но еще есть над чем поработать. Начнем с более простых вещей.

1) Количество ядер можно получить так: Runtime.getRuntime().availableProcessors(). Должно дать 12 в твоем случае, проверь.

2) Цепочка if-else-if страшненькая, наверняка можно переписать хотя бы на свиче (возможно чуть подправив логику)

3) Бесконечный цикл в Processing.run(), отсутствие (видимых на скринах) условий выхода из потоков. Не надо так.

4)

>вместо CountDownLatch CyclicBarrier


Вот честно не знаю, так то они разные и тут ты немного изменил прежнюю логику, возможно и правда больше подошел CB, но я все еще сомневаюсь. CDL позволил бы не делить на 12 кусочков (processings), а оставить как было - 50, или поиграться с числом дальше, потыкать другие варианты. Т.е. да, задач получается больше чем потоков, это нормально, каждый поток будет выдергивать из очереди задачи пока они не кончатся. Но если в твоем случае можно разделить исходную задачу на подзадачи по количеству потоков возможно так будет даже лучше. Также CDL позволит убрать костыль из п.5

5)

> Thread.sleep(20000);// main program run time


Это конечно костыль. Здесь ты хочешь остановить главный поток чтоб подождать потоков на экзекуторе. Способа два.

5.1) Ждать завершения экзекутора
executorService.shutdown(); // не убивает сразу и НЕ отбрасывает задачи которые уже в очереди
executorService.awaitTermination(20, TimeUnit.SECONDS);
executorService.shutdownNow(); // отбрасывает задачи в очереди и пытается остановиться чуть более жестко

Способ по поведению полностью аналогичный твоему но более правильный: ждем 20 сек, ниче не происходит (экзекутор все еще работает, т.к. условий выхода из потоков нет, внутри Processing.run() бесконечный цикл), прибиваем экзекутор. Кстати в реальной жизни этот алгоритм (с бесконечными потоками) сломан, т.к. shutdownNow() (сюрприз) не может сделать ничего сверхестесственного по убийству потоков, и если они у тебя в коде не завершаются сами или повисли то экзекутор никогда не остановится -> утечка памяти и ресурсов

5.2) CDL
Здесь главный поток может легко просто сделать cdl.await() и все, ждем завершения задач. В общем случае это выглядит как то так:
int cycles = 0;
while (cycles < 10) {
CDL cdl = new CDL(12);
for (0..11) { executorService.submit(...); }
cdl.await();
cycles++;
}

В данном случае в Processing.run() нет бесконечного цикла, метод будет спроектирован так чтоб рассчитать все и завершиться. Processing объекты можно сделать одноразовыми или переиспользуемыми, не суть. Такой способ (с конечными вычислениями в потоках) более предпочтителен.
686 1754870
Нихуя не понимаю set и get блять ктоможет по человечески обьяснить нахуя они, ну или дать нормальное обьяснение,
687 1754876
>>54870
Почему вместо доступа к полям через точку все клепают тысячи геттеров-сеттеров? А вот никто не знает, но все пишут, так исторически сложилось. И сделать ничего нельзя - куча либ вообще игнорирует поля и сразу ищет get и set,
688 1754877
>>54876
Те один хуй придется использовать блядские гетеры и сетеры?
689 1754879
>>54867
Спасибо большое, анон, все учту.

>Пожалуй самое главное - есть ли выигрыш в производительности?


Засекал на коленках на секундомер, было то же самое, надо что-то более технологичное попробовать.
690 1754885
>>54870
>>54876
Вы зеленые чтоли или на полном серьезе? Инкапсуляция же. Да-да, вы можете сказать что теоретически предполагалось использовать в сеттерах логику для валидации, но на практике это не рекомендуется. А я иногда так делаю, мне пох, это удобно. И в геттарах тоже.
И потом: иммутабельность. Зеленые конечно не поймут что и для чего, но вот например задача: шлюха, которая должна сама маинтейнить свои сиськи:

>class Whore { private List<Tit> tits; }


Ну и вот получается что через точечку whore.tits - получаем полный неограниченный доступ на ЗАПИСЬ в сиськи, можем сделать три, пять, ни одной. А если через геттер:

>public List<Tit> getTits() { return new ArrayList<Tit>(this.tits); }


То вызывающий код не может сделать нам нихуя. Впитывайте, заебали.
691 1754891
>>54885
Няш, че такой агрессивный? Ладно тебе, а в место них же можно конструкторы хуячить? Или это другое?
692 1754892
>>54877
Да. Ещё можно юзануть ломбок. который все так ненавидят, для генерации get и set, но их всё равно придётся вызывать самому. Ну или юзать котлин.
693 1754893
>>54885

> не рекомендуется. А я иногда так делаю


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

> иммутабельность


final + конструктор + билдер
694 1754894
>>54891

>Няш, че такой агрессивный?


На самом деле нет, эта экспрессия чтоб лучше усваивали материал. Помогает?)

Конструкторы не помогут полностью, это замена сеттерам. Они помогают с иммутабельностью - полностью исключить сеттеры из класса (боже храни новую аннотацию @ConstructorBinding), но как конструкторы защищят от примера с доступом к листу выше? Только get.
695 1754899
>>54894

> как конструкторы защищят от примера с доступом к листу выше


А это не простой геттер в тонком дата-классе, а бизнес-логика уже пошла. Классический геттер тупо возвращает ту же ссылку, а ты возвращаешь хуйню, наёбывая того, кто вызывает.
696 1754907
>>54893

>Ну ты и пидор


Ниче не могу сказать в свое оправдание, наверное ты прав.
Однако, зная проблему, я абузю эти штуки более аккуратно. Например, по контракту мутабельный класс не должен возвращать null. Но юзер не засеттил поле. Я не сеттю поле за него, я возвращаю дефолтный объект. Миллион примеров такого поведения в SDK.

>>54899
Выше кто-то упомянул тонкие дата-классы? Я не заметил. Классический пускай и возвращает, а геттер в иммутабельном классе не допускает доступа к своим членам. О чем ты споришь? Возвращаешь сырую ссылку -> non-thread-safe класс, со всеми вытекающими, точка.
Справедливости ради хочу заметить что лично я не возвращаю новую коллекцию на геттерах, это не разумно, но это классический книжный пример нарушения иммутабельности, алло. Другой пример - присвоить полю переданную ссылку коллекции в конструкторе вместо создания своей собственной.
698 1754950
>>54892
>>54877

Кто и почему ненавидит ломбок? Вопрос не в плане троллинга, а, типа, у нас в компании его повсеместно используют, все рады-довольны
699 1754969
>>54870
Потому что с прямым доступом ты можешь захуячить туда абсолютно что угодно, а это может противоречить бизнес-логике. Например в int weightOfWhore ты можешь передать минус 45 кг. Ясное дело, что вес у шлюхи всегда положительный. Через сеттер ты можешь вписать эту проверку и проворачивать на хую тупого юзера каждый раз, когда он пытается что-то такое сделать
original[1].jpg55 Кб, 800x400
700 1754975
>>54885
как что-то плохое
мимо автор того куска круда с сиськами шлюх
image.png46 Кб, 739x568
701 1754981
Ку, анон. Вот закончил профильную вышку и сижу пока размышляю. Актуально ли в 2к20 мейнить жаву на бэк энде или теперь из основных инструментов на бэке есть более перспективные варианты? Как я понимаю, например, в ведроид уже особо не перекатишься из-за kotlin. Да и как-то дебажить легаси код особо удовольствия не доставляет, а с жавой, по моему зелёному субъективному мнению, придётся по большему счету заниматься именно этим. Но мб это мои розовые очки и всё на самом деле не совсем или далеко не так.
702 1754983
>>54950
Меня подбешивает, что весь код в идее от него становится красным.
Вывод типов проёбывается нахуй, non static method cannot be referenced from a static context и ты сидишь блядь как фувлыжник, смотришь в код, где блядь ты с типами ошибся. Фувлыжно сидишь.
Без ломбока я сразу нахожу где ошибка, например.
Но вообще, штука очень удобная. Надо её в кор встраивать и пилить полную поддержку везде, тогда будет вообще круто.
На другой стороне весов - а нахуй это вообще надо? Есть же alt + insert и ты получаешь тоже самое.
703 1754992
>>54981
Я когда выбирал, то намеренно шёл на какую-то проверенную хуйню, чтоб она не сдохла КЁМ через полгода, как я вкачусь.
Жаба везде, банки, блядь, хуянки, гос.аппарат. Может и сдонет, но я к тому времени уже и сам сдохну.
Про легаси - а в чём тут минус? Перед тобой будет огромная куча кода, сиди, изучай, перенимай опыт. Ты молодой, шутливый, а на самом деле, сидеть и править 2 строчки кода раз в день и получать за это стабильную зарплату это не самый плохой вариант, который может с тобой произойти.
Сам недавно вкатился, сначала был на какой-то старой хуйне, сделал фичу - через 3 месяца её начали выкатывать, я к тому времени уже и забыл что я делал.
Потом поставили на другой проект, с одной стороны это охуенно интересно, когда из сраного голого помника вырастает хуйня на десятки тысяч строк кода, классно работать в связке с фронтом, когда в реальном времени что-то меня приходится, править, обсуждать это всё, смотреть как топ-менеджеры реагируют на говно, что ты высрал.
С другой - прибегает ПМ, "вот хуйня от заказчика, к четвергу должна быть готова". А сейчас среда... И дрочишься часов 8, забывая пообедать.
704 1754994
>>54992

>что-то меня


менять.
image.png129 Кб, 319x245
705 1754997
>>54992
Понял, анон, спасибо за ответ)
706 1755015
>>54867

>Бесконечный цикл в Processing.run(), отсутствие (видимых на скринах) условий выхода из потоков. Не надо так.


Там с помощью эксепшенов выход из цикла.
707 1755036
Хочу съесть жабу.
708 1755041
>>55036
Оракле сделает это за тебя, когда закроет исходники.
709 1755042
>>55041
Не имеет права.
изображение.png1 Мб, 1200x713
710 1755050
Кстати, вот пикча на перекат
711 1755054
>>55050
При перекате надо оставить текущую пикчу.
712 1755065
>>55054
Зачем одно ии то же? Даже когда анон нарисовал птицу в 15-16 треде, там номер на рисунке хоть меняли.
713 1755069
>>55065
Если на текущую пикчу добавить номер, тебя устроит?
714 1755073
>>54983
но он не становится..? Ты же плагин ставишь вместе с зависимостью. alt+insert, ну, во-первых визуально кода больше становится, во-вторых, ну, например, с аннотацией Data Pojo выглядит просто как набор полей (чем он и является), а все иквалсы, хеши, геттеры и сеттеры обеспечит ломбок, да и билдер самому писать, ну, фу
715 1755079
>>55065
Жаба это и впрямь слишеом уныло. Уноси ее.
другой анон
716 1755086
>>54983

>>Есть же alt + insert и ты получаешь тоже самое.


@Getter @Setter ты пишешь 1 раз, а alt + insert каждый раз после добавления поля.
717 1755089
>>55086
Сделай макрос.
718 1755108
Кстати, а как ломбок вообще работает? Что происходит, когда я обращаюсь к ломбковым методам?
719 1755113
>>55108
В райнтайме ничего не происходит, там будет тот же байт-код, будто написал всё сам. При компиляции процессор аннотаций ломбока тупо вставляет определения методов, и дальше они компилируются.
720 1755120
>>55113

>При компиляции процессор аннотаций ломбока тупо вставляет определения методов, и дальше они компилируются


То есть просто в этом же файле дописывает код, правильно?
721 1755130
>>55120
Нет, исходный файл остаётся как есть. Процессор аннотаций запускается самим компилятором джавы и всё делается в памяти. Считай, что это вроде экстеншена для компилятора.
722 1755135
>>55130
Понял, спасибо.
723 1755137
>>54983

>а нахуй это вообще надо? Есть же alt + insert


Сколько ошибок в слове котлин
724 1755223
>>55137
Че за котлин? Это плагин для андроида какой то?
725 1755323
>>54275

>Но я насчитал 3 (три) волатайла чтобы это работало. А ты говорил про два. Это вопрос с двойным дном?


Нет, это я просчитался. Давно реализовывал - уже успел все забыть.
726 1755324
>>55223

>Че за котлин?


Остров.
727 1755412
Загадка для собеса: Как выполнить закомментированный код?
728 1755421
>>55412
Раскомментировать.
729 1755444
>>55412
Просто.
730 1755449
>>55421
Тогда выполнится незакомментированный код.
731 1755451
>>55412
Использовать какую-то последовательность юникода.
732 1755458
>>55412
Создаёшь дубликат файла с кодом без комментариев и запускаешь
733 1755459
>>55451
Вспомнил, перед кодом добавить перевод строки в виде \u чето-там.
734 1755463
>>55449
Да, выполнится. А что, не должен? В условии этого не было.
735 1755464
>>55463

>выполнить закомментированный код

736 1755473
>>55464
Где там слово "только"?
737 1755497
Делаю рест апи на спринг бут, вопрос такой, мужики,: как лучше возвращать json когда объектом это не очень хорошо делать, к примеру, когда некоторые данные нужно сокрыть, то есть у объекта юзер к примеру нужно сокрыть пассворд при возвращении. Раньше я делал через хешмапы и вручную вставлял в нее все параметры, но, подозреваю, не самый лучший метод, подскажите пожалуйста.
738 1755500
>>55497
DTO
@JsonIgnore
@JsonView
image.png333 Кб, 512x512
739 1755506
>>55500
спасибо
740 1755517
>>55497
Только не говори, что ты пытаешься передать клиенту Entity, полученное напрямую из базы.
741 1755519
>>55517
а как надо? расскажи
742 1755521
>>55519
Не передавать сырые данные из бд.
мимопредположил
743 1755523
>>55521
>>55517
что для вас "напрямую" вообще?
744 1755526
>>55519
Создать отдельный класс-DTO со структурой, похожей на Entity, но только с полями, предназначеными для клиента, а не с вообще всеми. Каждый раз конвертировать Entity в эту DTO и возвращать клиенту. Просто из соображений безопасности. Хорошо ещё, что ты заметил, что у тебя там поле с паролем, а если бы нет, и задеплоил на прод? Один раз так забудешь - и привет от хацкиров. А если у тебя там ещё какой-нибудь @OneToMany, и передашь ты не только один пароль, а целый список паролей связанных юзеров?
745 1755528
>>55523
Без конвертации во вторичные DTO-шки.
746 1755537
>>55517
Во многих случаях так делаю и прекрасно себя чувствую. Аннотаций вполне достаточно, чтобы не передавать лишних паролей, OneToMany и прочего
747 1755546
>>55537
А затем кому-нибудь другому понадобится новая колонка таблице, и он её добавит в Entity, ничего не зная про твои аннотации и думая, что этот объект никогда не передаётся на клиент как у всех нормальных людей.
748 1755551
>>55526
ну я только учусь, так что какой прод=)
а если вот нужно много представлений объекта? или к примеру в случае с PagingAndSortingRepository, он же возвращает Page<Object>, как мне быстро сконвертировать его в Page<ObjectDTO>?
749 1755553
>>55551
Через ConversionService
750 1755555
>>55551
Обычно для этого пишут ещё один конструктор или статик метод, в сложных случаях - сервис-конвертер. Ну и последовательность вызовов сеттеров/других конструкторов внутри.
Если нужно преобразовать коллекцию, то со стримами будет удобно: objects.stream(ObjectDTO::new).collect(...)
752 1755559
>>55546

>добавит в Entity, ничего не зная


Решается настройками, при которых передаются только явно отмеченные свойства

>у всех нормальных людей


Дай угадаю, это те же нормальные люди, у которых каждый класс в коде обязательно продублирован интерфейсом
753 1755562
>>55559

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


Именно. А также по отдельной сущности на каждый SQL-запрос и по простыне паблик геттеров-сеттеров там, где они не нужны.
754 1755565
>>55557
ого, оч круто, спасибо
755 1755567
>>55557
ой блин только заметил, что там через геттеры, сеттеры, а я на котлине пишу, там будет все как надо работать?
756 1755569
>>55567
А че, на котле нет гсеттеров?
757 1755571
>>55569
Нет, там элегантные объекты.
758 1755573
>>55571
О как.
759 1755574
>>55567
Как ты умудряешься писать на котлине, не понимая, что свойства транслируются в те же геттеры
image.png7 Кб, 506x296
760 1755581
761 1755584
>>55574
крууууть
762 1755659
>>55551

>>как мне быстро сконвертировать его в Page<ObjectDTO>?


в StringUtils есть метод для мапинга (не помню какой, может так и называется map), но в глубину он не замапит(если у тебя в этом энтити другие энтити и их тоже надо преобразовать), лучше использовать modelmapper/dozer/mapstruct.
Ну или свой мапер напиши. Хоть на генериках, хоть тупо статичными методами Utils.convertObjectToDto (если не генерики - то для каждого преобразования придется метод писать)
763 1755786
>>43107
А смысл в вышке? Например у меня друг учиться в унике и там за 4 года обучения не разу не было Java, только C, C++ и основы веб (html, css и js). И какие по твоему у такого челика преимущества перед парнем который прочитал Шилда и просмотрел кучу лекций по Java, Spring, Hibernate?
764 1755796
>>55786
В вуз кодеры идут не за знаниями, а ради корки, чтобы соответствовать стереотипам работодателей.
765 1755797
>>55786
Вышмат.
image.png5 Кб, 571x177
766 1755799
>>55786

>А смысл в вышке?


>у меня друг учиться в унике


Блять, я не смог удержаться.

Ну а серьезно, уже миллион раз обсуждали: многие работодатели просто требованием это ставят и все. Вот например на пике: загрузить необходимые документы в систему, обязательное поле. И что ты сделаешь? Это же как типа начальная проверка долбоеб ты или нет, по сути ничего не проверяет кроме дисциплины. Но надо. Такие блять правила. Конечно вкатываться можно и без В/О, но только через небольшие конторки - а оно тебе надо - отсекать сразу пласт компаний которые тебя бы потенциально взяли? И потом, в ДС (по слухам) есть для студентов всякие стажировки в луксофтах/кроках.
767 1755805
>>55799

> есть для студентов всякие стажировки в луксофтах/кроках.


А ещё в сберах и втб как минимум. Причём ты реально должен числиться в вузе, и если уже закончил, то на стажировку не берут, лол.
768 1755811
>>55799
Разве диплома из колледжа будет не достаточно? Мне казалось, что смотрят больше на скиллы.
Но в любом случае сам планирую после колледжа идти на вышку заочно, но только потому что хочу свалить из этой страны. А рабочая виза только с вышкой идёт(
769 1755815
>>55811

>Разве диплома из колледжа будет не достаточно?


>рабочая виза только с вышкой идёт(


Ну ты сам все сказал. Много где вышка идет как само собой разумеющееся, а на кандидатов без в/о как на недолюдей смотрят, как расизм, натурально. Будет ли достаточно диклома из колледжа или в/о по кулинарии это решает конкретный работодатель, у некоторых требования разнятся, но многие, если не большинство, требуют именно вышку по специальности/околоспециальности (на программера - инженер, физик, математик).

>смотрят больше на скиллы


Смотрят в первую очередь на проекты, а скиллы без проектов это такое: долго проверять умеешь или нет, риск брать или вообще начинать возьню с таким кандидатом когда сейчас сразу доступны кандидаты получше.
770 1755816
Какая разница возвращать ModelAndView с добавлением вьюнейм и вьюобжект или возвращать стрингу с добавлением атрибутов в Model?
771 1755819
>>55816
Во втором случае сильнее выёбываются хейтеры магии и мутабельности.
772 1755840
>>55819

>мутабельности


Сайд-эффектов.

>>55816
По новейшим программерским понятиям не рекомендуется каким-либо образом изменять параметры, переданные в метод (добавление в Model/ModelMap), а только возвращать значения (new ModelAndView()). Иногда лень такие контейнеры лепить, или чтоб быстро проверить, тогда изменяешь, а иначе - делаешь как положено.

Максимум что позволяется сделать с параметром переданным в метод - перезаписать полностью, т.е. использовать под свои нужды как буфер, т.к. это переменная на стеке и ее изменение ничем не грозит вызывающему коду.
773 1755945
>>55815
бля, анон чё-то ты меня пиздец расстроил(
У меня что совсем нет шансов найти работу, если нет без вышки?
774 1755961
>>55945
Реально, но сложнее. Попробуй всякий networking - хакатоны, стажировки, чатеги в телеграме. Чтобы тевою резюмуху напрямую отправили техническим чувакам минуя хрюш.
775 1755973
>>55945
Есть, но меньше, я же выше написал: твой путь лежит через мелкие конторы, можешь и через крупные тоже, но сразу уточняй что нет вышки и следи за реакцией, а то обидно будет пройти два собеса (HR и техническое), а потом тебя не примут из-за этой вот "мелочи", еще и обидятся что время их потратил. А лучше каждому работодателю это говори как можно раньше, типа "не будет ли это проблемой, уважаемые?" Параллельно учись на заочке, лучше сразу в СШАшной, если англ. позволяет. У нас коллега так делал (не вкат, а заочка американская), и потом туда уехал, но уже после диплома. Только я требований не знаю, может там тоже требуют вышку местную для зачисления. Могу уточнить какой универ если надо.
776 1755992
Бакалавр - не вышка. На джависта магистратуру надо.
777 1756005
>>55992
Надо специалиста. Бакалавры - это зумеры, их в жабу не берут.
2020 vo.jpg53 Кб, 1080x178
778 1756094
>>55811

>диплома из колледжа


В голосину заорал с этого быдла!
779 1756113
>>56094

> следующих вузов


И ещё хорошо, если в вакансии хотя бы это не требуют.
780 1756130
>>56113
Это одна из верхних строчек вакансий, которые я получил по запросу "джун жаба" в дс.
В среднем в каждом 10ом требуется корка нормальных вузов.
781 1756152
Мы не сможем ниичего все равно, лучше дома лежать в потолок плевать. А так только унижения себе заработаем.
782 1756157
>>56152
Я смог, сижу на удалёнке теперь, тоже в потолок плюю. Но ещё и зарплата капает.
Ты сам для себя выбирай, будешь ли ты пытаться, терпеть насмешки уебанов, каждый раз вытираться, вставать, потом пытаться ещё раз, до тех пор пока не получится или сдашься и упадёшь кверху лапками.
783 1756296
Кто нибудь парсингом сайтов занимался? Какие движки использовали?
784 1756304
785 1756378
>>56304
Но... Либы на все случаи жизни в жвм-мире...
786 1756390
>>56378
Либы для хуйни не пишут.
787 1756418
>>56390
Справедливо.
788 1756440
>>56378
Либы на все случаи жизни в питон-мире.

Наверняка и для джавы полно подобных либ, но нужно выбирать язык под задачу, а не наоборот.
789 1756464
Реквестирую библиотеку регулярных выражений, которая быстро подсчитает мне количество совпадений без мозгоебли.
790 1756466
>>56464
Ну либо которая умеет считать с конца.
791 1756517
Зачем в орм пишут название колонок таблицы, если хибернейт и так их переименует как положено?

@Column(name = "student_id", nullable = false)
private Integer studentId;
@Column(name = "firstName", nullable = false)
private String firstName;

Почему бы не написать просто:

@NotNull
private Integer studentId;
@NotNull
private String firstName;
792 1756543
>>56296
- OkHttp для низкоуровневой работы с запросами (для REST или других выебонов).
- Jsoup для парсинга статических страниц.
- HtmlUnit для парсинга динамических страниц.
793 1756566
>>55961

>чатеги в телеграме


Это что такое? Первый раз слышу про какие-то чатики
794 1756605
>>56517
Для удобства.
Колонка может быть "student_id_in_this_table_и_ещё_20_слов", а поле просто id. Ты же не всегда имеешь возможность создавать и изменять бд.
С JoinColumn там вроде запросов меньше будет или что-то такое.
>>56566
Зумерская хуйня. Пару раз попадал на собеседование общаясь там с лидом напрямую. Иногда там проскакивают вакансии, которых нет на хх.
Но в целом хуита для даунов. Как и любой чатик всё скатывается в фажество чуть быстрее, чем сразу.
795 1756626
>>56566
Есть некоторое количество тематических чатов в телеге типа:

https://tg1.me/jvmchat — чат для разработчиков на Java.
https://tg1.me/javarush — еще один чат про Java.
https://tg1.me/javastart — новички в Java.

там можно поспрашивать вопросы по разработке и поискать работу, может кто ищет. Еще по моему опыту хорошо работает пост в линкедине, если его лайкнет много народу.
796 1756628
>>56543
Спасибо анончег.
797 1756655
Перекат будет быстрее, чем вы думаете.
798 1756660
>>56626
А projvm?
799 1756661
>>56655
Но зачем?
800 1756668
>>56660
Попробуй посиди во всех, будет бесполезно - выйдешь.
801 1756677
>>56655
Ну это же хорошо. Борда живая :з
802 1756705
Масштабные нововведение в джаве появляются каждые ~10 лет.
Начиная с 1995
Джава 5 2004 г.
Джава 8 2014 г.
Ждем 2024
803 1756723
>>56705

>нововведение


Не нужны.
804 1756764
>>56605

>>Колонка может быть "student_id_in_this_table_и_ещё_20_слов", а поле просто id


Просто я вижу что в ентити 10полей и все называются ровно так, как в @Column(name). Если там будет ебанутое название, то можно прописать руками, но зачем дублировать то что и так очевидно? Это ж как раз таки не удобно и только загромождает код.
805 1756827
>>56764
Потому что explicit обычно лучше чем implicit - нагляднее, меньше "магии". Но не до абсурда конечно, когда иногда это становится слишком verbose, и начинаются появляться инструменты типа ломбока, генерирующие тебе аксессоры/мутаторы. Это правило везде прослеживается, не только про колонночки. Если что-то явно написано то это можно в случае чего быстро изменить/дописать, не вводя новую сущность. В примере с аннотациями на колонночки при пуше в гит изменений, например, у тебя будет "изменение строки", а не "новая строка", что может тоже влиять на восприятие (семантика коммита будет - изменение, потому что ты именно изменил поле, а не добавил). А еще вот пример лично мой: я ставлю всегда скобки вокруг тела в форах и ифах, даже если там в теле только один стейтмент: то же самое правило - explicit лучше чем implicit - мне так удобнее видеть блок, плюс можно легко в блок дописать новый стейтмент и будет всего одна строка в гите, а не три строки если к одному стейтменту без скобок дописать еще один с добавлением этих скобок.
806 1756839
>>56827
О, ты вроде что-то понимаешь, расскажи про гит.
Я вот хуярю один коммит - один таск.
Т.е. мне говорят "почини вот это". Я делаю, и заливаю. Иногда там одна строчка, иногда 20.
Или "добавь функционал". И это тоже один коммит, хотя там может быть 2 репозитория, 3 новых сервиса, 5 сущностей и ещё в других классах изменения.
Как правильно?
807 1756857
>>56705
Value types должны пораньше завезти.
808 1756865
>>56857
Да они еще несколько версий минимум в превью будут, когда завезут.
809 1756874
>>56839
Это тебе должен объяснять твой менеджер проекта. Если ты сам коммитишь в мастер, то разницы нет и ты все делаешь правильно - в первом случае у тебя багфикс, во втором добавление фичи. Добавление фичи можно разделять на несколько коммитов, например ты целую неделю над фичей работаешь и вполне можешь несколько точек успеть создать. Только не пуши коммиты сразу, по одному, чтобы они, из незавершенной фичи, перемежались с другими коммитами других людей. Коммити в отдельную ветку (git checkout -b <branch_name>). А потом по завершении фичи есть два варианта:
1) просто мердж в мастер, тогда параллельная ветка сливается с последним коммитом мастера, "вливается" в него;
2) ребейз (иногда со squash'ем - чтоб всего один коммит получился) - перемещение твоей ветки на топ коммит мастера.
Вот как именно вы захотите в своем проекте так и делаете. Обычно финал добавления в мастер - мердж или ребейз - делает специально выделенный человек, предварительно проверив код, а ты просто ветки свои ему пушишь.
810 1756883
>>56839
>>56874
Да, еще забыл, если отвечать прям на вопрос "а как мне разделять изменения на коммиты?": главное правило - каждый коммит не должен ничего ломать, т.е. продукт, после очередного коммита должен запускаться и работать, без ошибок компиляции например, даже если типа ничего не добавилось. Объясню на твоем примере: допустим у тебя "2 новых репозитория, 3 новых сервиса, 5 сущностей и ещё в других классах изменения", которые эти все новые классы используют. Т.к. новые классы создаются раньше, чем их использование в других классах, можно их коммитить отдельно. Понедельник: создал энтити и репозиторий, набросал зачатки сервиса, написал тесты, проверил что работают энтити и репо. И в конце дня коммитишь репо и энтити, но не сервис, а т.к. эти классы никто не использует еще, то коммит ничего не ломает. И так всю неделю новые классы хуячишь которые нигде не используются, кроме твоего "грязного" состояния гита, а в пятницу уже коммитишь весь сервис (что само по себе тоже ничего не сломает, ведь он нигде еще не используется), потом коммитишь уже вставку сервиса в другие классы. Аккуратно следишь чтобы не было такого что закоммитил сначала связку, а потом уже новый класс - это плохо.
811 1756892
>>56874
>>56883

>главное правило - каждый коммит не должен ничего ломать


Ну я так и думал. Спасибо за развёрнутый ответ.
Сущности по отдельности хуярить, когда их никто даже не использует ещё, это чёт какая-то хуёвая затея на мой взгляд.
812 1756900
>>56883

> каждый коммит не должен ничего ломать, т.е. продукт, после очередного коммита должен запускаться и работать, без ошибок компиляции например


Эх, вот бы этому ещё всегда следовали.
813 1756919
>>56900
В смысле? Кто-то действительно так косячит?
Меня ебут и за всякие мелочи, вроде нейминга переменных.
Если после моего коммита что-то по пизде пойдёт, боюсь я из офиса выйду через окно.
814 1756922
>>56883

>каждый коммит не должен ничего ломать, т.е. продукт, после очередного коммита должен запускаться и работать, без ошибок компиляции


Схуяли? В фича бранче у тебя полная свобода действий, ломай как хочешь.

Если у тебя огромный проект и ты делаешь какой-то рефакторинг который касается всего проекта, то ты просто не сможешь работать так, чтобы каждый коммит ничего не ломал.
image.png62 Кб, 859x243
815 1756947
>>56922
Да, действительно, есть такие случаи поймал меня, тоже так делаю. Речь была скорее про публичные ветки, но даже в личных стараюсь придерживаться того правила, однако это не всегда удается.

>>56892
Я не говорю на каждый класс прям отдельный коммит хуярить, нет, но лично мне нравится разбивать: этап подготовки - коммитим новые классы, этап связки - коммитим использование новых классов в различных местах. Это позволяет в случае чего прыгнуть на этап подготовки и что-то добавить, переписать историю оттуда (разумеется только пока ветка еще локальная).
816 1756966
>>56919
У нас не ебут, даже иногда бывает, что в мастере некомпилирующийся код. Особого смысла ебать и нет - до релиза времени полно, сотню раз все успеют всё поправить и протестировать.
817 1757038
Почему хибернейт легаси? Что вместо него используют?
818 1757052
>>56966
CI/CD не завезли?
У нас раз в неделю теги собирают, список изменений, вся хуйня.
819 1757056
>>57038
Спринг.
820 1757060
>>57052
Завезли наполовину. Тем, кто коммитил, приходит уведомление, что сборка свалилась, и всё.
821 1757062
>>57038
JDBC/JdbcTemplate.
822 1757064
>>57060
Ахуеть. И тимлид не пиздит палкой по голове, если ты хуйню запушил, не смотрит код, ничего?
823 1757071
>>57038

>Почему хибернейт легаси?


Потому что какой-то местный дурачок форсит словосочетание "легаси хибернейт". Вместо того чтобы писать, допустим, "говнохибернейт", раз уж он так ему не нравится.
824 1757074
>>57062
Благодарю, анонче.
825 1757077
826 1757079
>>57064
Смотрит, т.к. пуллреквест делаешь на него. Но в браузере можно что-то и не досмотреть, особенно когда дохуя изменений.
Ну, есть давным-давно сломанный плагин для запуска анализатора и предварительной сборки по пуллреквесту, но чёт никто не чинит, всем похуй.
827 1757081
>>57071
Ок, буду форсить "говнохибернейт", раз тебе не нравится.

>>57077
Да.
828 1757111
Вопрос к энтерпрайз-рабочим, у вас проверяли военник при устройстве на работу? Только наличие или болезни тоже смотрели?
Например если у меня стоит, что я не годен по 18 статье (по дурке), то могут послать нахуй?
Особенно интересуют банки.
829 1757134
>>56827

>>я ставлю всегда скобки вокруг тела в форах и ифах


Даже в таком случае? По мне так без скобок не всегда плохо, если это умещается в 1 строку.

if (flag1) {
return false;
}
if (flag2) {
return false;
}

if (flag1) return false;
if (flag2) return false;

Получилось как свич, только без свича.
А вот писать в 2 строки без скобок - конечно свинство.
830 1757135
>>57111
У меня в одном зелёном банке, подозреваю, только наличие смотрели. Не знаю. Они берут твои документы, записывают данные и возвращают, и это уже при непосредственном оформлении уже после всех собесов и согласований, так что вряд ли они пошлют нахуй в самый последний момент.
831 1757144
Налажил 10000 эксепшенов, прежде чем смог подключиться к MySql и сделать простенький запрос. Вот настоящий драйв от программирования, когда вместо красной консоли видишь одну строчку 'Total number of books in the table : 2', зато столько эмоций сразу.
832 1757151
>>57144
А постгрес искаропки подключается без ебли. Но это скучно.
833 1757157
>>57144
Поэтому фронтендеры и не любят такое. Куча сил, куча кода, а результат - пшик.

Вангую проблему из-за com.mysql.cj.jdbc.Driver
834 1757164
>>57134
Тернарный оператор тогда уж.
835 1757167
>>57157

>Куча сил, куча кода, а результат - пшик


Это хорошо, что они так думают. И не знают, что у нас есть спринг и его магия.
836 1757168
>>57157
Прописал другой плагин аутентификации
Апнул коннектор до совместимой версии с MySql
После апа прописал mvn clean package, так как появилась новая ошибка
Пришлось прописать версию компилятора mvn
Исправил ошибку с временной зоной
И запустилось
837 1757174
>>57168

> временной зоной


Мне когда-то пришлось в URL для подключения кроме этого добавить ещё десяток ключей про кодировки, SSL и хуй знает что ещё, хотя у всех в примерах вообще ничего такого не было. Может, с конфигами мускла что-то не так было.
838 1757176
>>57164
Тернарный тут не подойдет, у меня же флаги разные, а после них еще код пойдет.
flag1 ? false : flag2 ? false : <куча кода со своей логикой>
839 1757224
>>57134
Да, даже в таком случае. Я подозреваю что ты показываешь early-exit - механизм раннего выхода из метода при неудовлетворении каких либо условий или параметров. У меня это обычно выглядит так, см. пикрилы. Я могу в любой момент захуярить там вывод в лог или ассерт, блок всегда к этому готов. Я на автомате уже так пишу: "if () {}", а потом расставляю внутренности. А если в идее то макросами: ifn, fori.
840 1757227
>>57135
>>57111
Нну, как раз-таки потом же идет проверка безопасниками, в самом конце, уже когда технари и hr одобрили, так что вполне могут и развернуть.
841 1757233
>>57111

>проверяли военник


"Вам 30 лет, проблем с армией у тебя уже нет..."
Если это можно назвать проверкой - то да.
842 1757245
>>57227
Мне безопасники разок звонили ещё до подписания документов (забыл кое-что заполнить в анкете), правда, в то время они знали обо мне только родной город, инфу о родственниках, где учился и ещё что-то. Понапроверять они успели бы что угодно - с собеса до выхода на работу у меня прошёл месяц.
843 1757310
>>57245

> с собеса до выхода на работу у меня прошёл месяц.


А почему такой промежуток?
844 1757321
>>57310
Здесь у всех в среднем столько, по крайней мере, кого я спрашивал.
Бюрократии много, бесконечные согласования, ожидания исполнений, пока документ дойдёт до самого главного, пока у него найдётся время. Никто никуда не торопится.
845 1757741
>>57111

> Вопрос к энтерпрайз-рабочим, у вас проверяли военник при устройстве на работу?


Конечно. Просили отсканировать для личного дела
846 1757810
Делаю туториал по SpringBoot https://javarush.ru/groups/posts/497-zavoevanie-spring-boot
Нихуя не понимаю, что импортить.
Откуда пакет javax берется?
847 1757811
Забить что ли и искать что-то другое.
848 1757814
>>57810
Фу жавараш
849 1757865
Что можно делать в офисе у джавистов?
850 1757919
>>57810

>>Откуда пакет javax берется?


Зз JRE.
Анотацию Id лучше импортировать стандартную(javax), а не спринговую.
Вместо Date лучше использовать LocalDate - меньше будет проблем с бд.
851 1757920
>>57919

>Анотацию Id лучше импортировать стандартную(javax), а не спринговую.


Почему?
852 1757951
>>57865
Конкретно у меня это настолько обыденный офис, что вместо нас могли бы сидеть 50-летние тёти и заниматься делопроизводством в ворде и экселе. Есть кухня с кофеваркой, есть стол для пинг-понга, пара диванов. Ну и кабинеты, где сидим по 10-15 человек.
853 1757954
>>57951

>стол для пинг-понга


Часто рубитесь?
854 1757955
>>57919

>javax.persistence.Entity


>Зз JRE.


Нет
855 1757958
>>57919

>Зз JRE.


А я думал из JCL.
856 1757960
>>57951
Мечтаю об офисе с бильярдом.
857 1757971
>>57954
Частенько, но не я.

>>57960
У знакомых в другом офисе чего только нет, даже приставки есть.
858 1758018
>>57971
Приставки зло, и так весь день сидишь.
859 1758046
>>57865
Как же хочется качалочку.
860 1758073
>>58046
Херка будет приседать и ты будешь бояться туда ходить.
861 1758138
>>58073
Д-да...
862 1758167
>>58073
Первые 2 года, меня ещё интересовали подобные вещи. Но сейчас глубоко похуй, насмотрелся синдром гинеколога.
863 1758601
>>52452
Переписал на c++, и там и там на даблах без длинной арифметики. Ни коим образом не научное сравнение, за который сеньер или миддл постучат по головушке. Но все равно потратил пару часов и написал то же самое на с++ и SFML Graphics.
Думал, будет быстрее, но вышло в несколько раз медленнее, так что хз, как это трактовать. Логическая часть точно такая же, работа с тредами примитивная, не было желания сейчас вникать в них на с++. Делаешь больше 1 треда - становится быстрее, значит, многопоточность работает(-с). Пикчу рендерил, в ргба, а не ргб из-за особенностей сфмл, но прям такой большой разницы не должно быть. Ебли с синтаксисом больше. Получил обратный эффект от того, что ожидал. Хотя это как сравнивать время, за которое ты пропрыгаешь вокруг стадиона на пружине или проедешь на самокате. Хуйня, но почему бы и нет.
864 1758628
>>58601

> SFML


Надеюсь, ты создаёшь буфер с пикселями и текстуру, а не рисуешь 100500 прямоугольников размером 1х1?

мимо-тред не читал
865 1758642
>>58628
Вот так.

static sf::Uint32 picture; // rgba

// {update picture logic ...}
texture.update((sf::Uint8
)picture, n, n, 0, 0);

// virtual draw func
target.draw(sprite, states);

Спрайту 1 раз текстура задается.
866 1758654
>>58642
Тогда хз.
867 1758705
>>58601
Привет, я тот анон что тебе комментил про улучшения.
Объяснить можно тем, что у тебя похоже действительно работа с графикой сжирает больше времени чем вычисления. Тебе надо отделить код вычислений от кода на вывод, а то у тебя там перемешано было все.
Грубо говоря надо так:

int[] image = largeCalculations();
drawImage(image);


largeCalculations() можно и нужно распараллеливать, а вывод распараллеливать не надо. В largeCalculations() не должно быть кода на вывод, потоки там не должны знать ничего о SFML или Picture, в идеале они даже в цвета не должны превращать результаты вычислений (но это уже от алгоритма зависит, можно так сделать в твоем случае или нет я не знаю, т.к. не знаю алгоритм), просто возвращать массив даблов например, а уже потом промежуточная функция переводит это в массив цветов, а третья - выводит на экран.

При такой компоновке кода тебе нужно будет сравнить только время реальных вычислений на построение массива результатов, а оно должно быть предполагаемо меньше в си хотя бы из-за работы на одних даблах.
868 1758757
>>58705
У меня есть один статик массив не синхронизированный, к которому я обращаюсь из потоков, не залезающих на на одинаковые пиксели. Один поток - одна область пикселей.
Вычисления происходят в run() функции (набрался привычек от жабы) и именно ее я параллелю.
Методы и поля пришлось сделать статик, когда игрался с потоками, возможно было правильнее без статика обойтись (что, если статик контент по умолчанию синхронизируется, а я не знаю, хотя вряд ли). По уму надо избавиться от конструктора и сделать сеттер на статик контент в такой реализации и конструктор в прайват секции, чтобы вообще не плодить объекты. Сейчас на ноуте нет нужной версии VS, чтобы исправить.
Потоки создаются в void MLogic::main().
Изменение текстуры после joinа всех логических потоков, вывод в отдельной функции.

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


Тоже об этом думал. Завтра замерю.
Код https://dumpz.org/bEhFE4ZZ3FnB
869 1758794
Скорее всего, java лучше оптимизирует вычисления внутри классов (тут ещё работа со статик переменными). Слишком мало работы с указателями, чтобы C/C++ был быстрее. Замерить вычисления надо, чтобы точно понять.
870 1758901
Так стринг в джаве это массив чаров, или массив байтов?
В книжке пишут массив чаров.
Открываю класс стринг в джаве 11 - private final byte[] value;
871 1758916
>>58901
Да хоть массив булеанов вперемешку с флоатами. Это детали реализации, нет смысла о них задумываться, это ничего не даст.
872 1758932
>>58916
Главное что это даст - удовлетворит мой интерес.
Ну а во вторых. Вроде byte занимают в 2 раза меньше места, чем char.
873 1758944
>>58932
Глянул в исходниках 8, там чары, в 14 - байты. Интересно. Возможно, в одной из спецификаций джавы это даже описывается. Но это долго копаться надо, чтобы найти.
874 1758947
>>58944
интересно как utf16 там помещается.
875 1758949
>>58947
Берутся биты чара и сохраняются как идущие подряд отдельные байты с учётом всяких правил кодирования юникода, endianness и т.д.
876 1759001
>>58901
Начиная с Java 9 там массив байтов, до этого был массив чаров. Изменение называется "Compact Strings".
Смысл в том что если строка содержит только символы ISO 8859-1 (Latin-1), то она хранится "компактно" в представлении один символ-один байт, иначе - в обычном UTF16 по два байта на символ, с суррогатными парами и прочим.
https://www.baeldung.com/java-9-compact-string
877 1759210
Вопрос от хеллоуворлдщика. Сейчас читал на hyperskill о wildcard, ограниченных снизу. У них написано вот что:

if S is a supertype of T then List<S> is considered to be a supertype of List<? super T>. The feature is called contravariance

По идее должно же быть наоборот? Если S супертип для T, то тогда List<? super T> является суперклассом для List<S>?
878 1759377
>>59210
List<Number> numbers = List.of(1, 1.0);
List<? super Integer> integers = List.of(1, "2");
numbers = integers; // ошибка
integers = numbers; // OK
880 1759409
>>59408
Жирный участок с 10к итераций рекурсии.
881 1759411
- Здравствуйте, это канал Java?
- Да.
- Почему этот код на C++ тормозит?
882 1759414
>>59377
То есть в данном примере integer = numbers выполняется, потому что numbers является объектом класса-наследника?
883 1759417
>>59411
Это философские рассуждения.
884 1759426
>>59377
Он как раз наоборот же спросил, дано:

>List<S> is considered to be a supertype of List<? super T>


Из твоего примера List<Number> это supertype List<? super Integer> из дано и должно быть как раз numbers = integers, но так нельзя.

А еще так нельзя: List<Number> numbers = List.of(1, 1.0); // Cannot resolve method 'of(int, double)'
И так: List<? super Integer> integers = List.of(1, "2"); // Cannot resolve method 'of(int, String)'
И если первое исправляется легко, это ошибка внимательности, то что ты имелл ввиду под вторым совершенно неясно, очевидно что стринг вообще в другой ветке иерархии, а Object не добавишь.
885 1759475
>>59426

>А еще так нельзя


Не старовата ли у тебя жаба
886 1759476
>>59210

>По идее должно же быть наоборот?


Да
image.png33 Кб, 589x586
887 1759478
>>59475
Есть такое.
Нихуя себе, а как это работает? :/
888 1759490
>>59478

> а как это работает?


Как если сделать List<Object>, а потом привести к List<? super Integer>. List<? super Integer> это ведь не более чем List, в который можно положить Integer. Так что как бы ничего не нарушается.
889 1759492
>>59490
List<Number> numbers = List.of(1, 1.0);
List<? super Integer> integers = List.of(1, "2", numbers.get(0), new Object(), new ArrayList<String>(1)); // Ok

В чем отличие от Object? Integer тут вообще никаким боком.
Другой анон
890 1759496
>>59492
Тут как бы правая сторона осполняется ДО левой и поэтому никаких интеджеров еще нет, результат правой стороны - List<Object>, а уже потом при присвоении накладывается ограничение.
891 1759501
The surprising feature in the declaration " Enum<E extends Enum<E>> " is the fact that the newly defined class Enum and its newly defined type parameter E appear in the bound of that same type parameter. It means that the Enum type must be instantiated for one of its subtypes.

Как понять последнее предложение? В чем его смысл?
892 1759505
>>59496
А, там потом засетить можно минимум Integer.
893 1759506
>>59501
Забей, так не пишут.
894 1759514
>>59506
Ну а все же, как понять запись:

class Test<T extends Test<T>>

Получается какой-то рекурсивный тип. Для чего это нужно?

> It means that the Enum type must be instantiated for one of its subtypes.



Я вот это на русский язык перевести никак не могу и понять тоже.
895 1759515
>>59514

> It means that the Enum type must be instantiated for one of its subtypes.


Это значит что этот Энум тип должен быть инстанциирован для одного из его подтипов.
Напиши сам, да посмотри что получится.
896 1759521
>>59515

>этот Энум тип должен быть инстанциирован для одного из его подтипов



Что значит "инстанцирован для одного из его объектов"?
897 1759522
>>59521

>объектов


подтипов

быстрофикс
898 1759524
>>59522
Когда ты объявляешь новый enum, под капотом там происходит что-то подобное. Например class UserRole extends Enum<UserRole>
899 1759530
>>59524
Спасибо. А где больше почитать про такие штуки под капотом и вообще про то как работает jvm?
900 1759533
>>59530
В интернете.
901 1759589
Стоит читать "Философия Java" в 2020, посленее издание которого было в 2006. По оглавлению некоторые вещи сильно подробнее, чем Шилдт или Хорстман, да и объем тоже отпугивает.
902 1759634
Возможно ли в Java скейлить содержимое (AWT canvas) JFrame по размеру фрейма? То есть что бы я мог изменить размер фрейма а всё отображаемое было на пропорционально на своих местах и позиция мыши также пропорционально читалась.
В фулл скрине я знаю как такое сделать, а вот в оконном режиме нет.
903 1760016
Это нормально, что в коде есть интерфейсы вроде WhoreService и по одному сервису на каждый из них вроде WhoreServiceImpl. Или это гофчанка и нормальные люди так не пишут?
904 1760018
905 1760033
>>60016
В дикой природе такое встречается сплошь и рядом, как и много другой хуйни. Но нет никакого смысла плодить такие интерфейсы, не делай так. Если действительно потом понадобится несколько реализаций, тогда и отрефакторишь, это тривиально.
906 1760052
>>60016

>нормальные люди


Смотря что ты подразумеваешь под этим.
На какой-нибудь галере, где главное это сделать побыстрее, отдать заказчику и съебаться в закат - там можно хоть одной стеной текста хуярить всё в одном классе.
В продуктовой же конторе, которая сама свой код поддерживает и постоянно улучшает, вроде какого-нибудь московского банка - ебут за все проёбы. DRY,SOLID, просто метод на страницу ебанул, неправильно назвал переменную/класс/метод, скобку не так поставил - получаешь пизды, на код-ревью с тебя смеются, показывают пальцем, неделю сидишь рядом с туалетом.
907 1760058
>>60052

> банк


Ахахах, на нашем проекте всем похуй, хоть определённый кодстайл и есть.
Каждый файл наполовину выделен идеей из-за дубликатов, 5 POJO с одинаковыми полями и конвертеры между ними, методы на 200 строчек, куча классов со своими костылями и общим наследниками вместо одного универсального решения, в базе 10 таблиц для одного и того же вместо одной.
Но это не от хорошей жизни, обычно времени на рефакторинг тупо нет, и пишут обычно так, чтобы говнокод хотя бы не растекался.

Мимо >>56966 - кун
908 1760061
>>60052
Да, все так. Есть места "вроде какого-нибудь банка", где, как тут недавно замечали, "никто никуда не торопится". Там совершенно нормально, когда отдел хорошо оплачиваемых специалистов неделю решает вопрос о правильности имени переменной. Туда за такой работой и идут. А есть другие места, где больше думают о реальном выхлопе, об эффективности, о производительности труда...
909 1760062
>>60058

>5 POJO с одинаковыми полями и конвертеры между ними


Так это как раз то что надо, солидно, по-банковски. Тут недавно поясняли
910 1760067
>>60058
Зачем ты там работаешь? Платят хорошо?
>>60061

>думают о реальном выхлопе


Высрать побыстрее бажное неподдерживаемое говно это не выхлоп, это высер.

>об эффективности


Если ты под эффективностью погромиста подразумеваешь SLOC - то несомненно!

>о производительности труда


Какая нахуй может быть производительность, когда всё как в посте выше?
Неделя уйдёт на то, чтобы разобраться в ебучей лапше, ещё неделя на то, чтобы добавить туда ещё одну макаронину, месяц потом твоя мать икать будет, когда тестировщики будут её вспоминать, вылавливая новые баги.
В то время как с нормальной архитектурой ты на ходу можешь добавлять новый функционал, почти никак не влиять на старый и в случае чего другой человек может взглянуть на код и быстро понять что и как там работает.
911 1760072
>>60067

>Высрать побыстрее бажное


Не так сложно прийти к той мысли, что "побыстрее бажное" и "неделю согласовывать имена переменных" - это всего лишь две противоположных крайности, а не единственно возможные варианты

>всё как в посте выше


Где-то как в посте выше, где-то нет

Так а если вернуться от общих рассуждений к конкретике. Допустим, у на продуктовая контора, которая "...постоянно улучшает". Надо ли нам возле каждого WhoreService обязательно иметь одноименный интерфейс? Что именно мы этим улучшаем и какую практическую задачу решаем?
912 1760085
>>60067

> Зачем ты там работаешь?


Знаний и опыта у меня маловато, чтобы искать место лучше.

> Платят хорошо?


Средне по рынку.
913 1760089
>>60072

>Что именно мы этим улучшаем и какую практическую задачу решаем?


Спроси у того, кто так делает. Думаю, ответят, что делают это потому что спринг за них всё связывает.
>>60085

>Средне по рынку


Я вот так и не понял до сих пор сколько это. На хх одни циферки, на деле другие.
Как на базаре, сколько наторгуешь, столько и дадут.
914 1760092
>>60089
Ну, конкретно у меня джунские 80 чистыми.
915 1760093
>>60089

>Спроси у того, кто так делает


Где-то тут был автор поста >>60052 который в ответ на этот вопрос начал объяснять, что в продуктовой-то конторе огого. Надеялся у него спросить, но подевался что ли куда-то.
916 1760103
>>60092
Можешь вкинуть список того, что сейчас ждуну нужно?
917 1760108
Всем привет

Подскажите плез , читаю сейчас Герберт Шилдт Java 8. Полное руководство 9-е издание . Все достаточно понятно , но тут нет никаких заданий для практики , где можно попрактиковаться находясь еще на уровне изучения языка помимо CodeWars ?

заранее спасибо за ответы
918 1760112
>>60103
Требования в вакансиях, в целом, не врут.
- Spring (Core, Data, MVC, транзакции) и EE (EJB, JMS, JNDI)
- Понимать SOAP/REST
- Oracle или Postgres на уровне DDL/DML
- JUnit/TestNG
- Желательно JS/React, но не обязательно.
- алгоритмы/структуры данных
- также можно потыкать какой-нибудь шаблонизатор freemarker, попарсить XML и т.д.
- ну и очевидные мавен с гитом.
Прям задрачивать всё это не нужно, хватит знаний от написания пары пет-проектов на этом стеке.
919 1760116
920 1760120
>>60116
спасибо
921 1760127
>>60092
Вот и я к 80 потихоньку подошёл почти за полгода.
Что делать, если вдруг вылечу с работы через год-другой (мало ли что может случиться), сколько просить, не представляю.
Если на ждуна я ещё мог понять среднее, от 60 до 100, то вот мидлы и выше это уже какая-то размытая хуета.
Одни на 160 ищут людей с 10 годами опыта, другие на 300к с парой лет. Сложна.
>>60093
Это всё мои посты. И я тебе свою версию назвал. Для DI это делается.
922 1760138
>>60127
Всякое бывает. У меня один знакомый фронтендер за полгода вообще до 150 поднялся, до этого не работал никогда. Всё сильно от организации зависит, от проекта, от тебя самого, от левой пятки нанимателей. И миддлами тоже разных людей везде считают.
Я бы где-нибудь через год претендовал на 100-120. Хуй знает. Со мной не торговались, просто по факту уже прислали оффер с суммой.
923 1760149
>>60127

>Это всё мои посты. И я тебе свою версию назвал.


Столько шума было, а как дошли до сути, так "хз, я джун, но в серьезных банках так делают..."

>Для DI это делается


DI прекрасно работает и без интерфейсов. Что по своей сути, что конкретно в спринге и аналогах
924 1760157
>>60112
Спасибо большое анончик.
925 1760163
>>60112

>EJB, JMS, JNDI


Как оно юзается вообще в проекте? В спринговых доках этих терминов не встречал, их обязательно надо знать?
926 1760166
>>60138

>где-нибудь через год претендовал на 100-120


Один в один мысли. А потом то что?
Когда можно запросить к примеру 200к и чтоб на тебя не посмотрели как на идиота? Для меня это пока что тайна.
>>60149
То, что я ждун не делает меня слепым и глухим. Тимлид ебёт за запах в коде всех, независимо от должности.
Можешь дальше смеяться с GoF и прочего. Я вот чётко усвоил, что без этого подняться выше макаки не получится.
927 1760168
>>60166
Объяснить, в чем конкретно тут суть запаха и при чем тут GoF ты не можешь, но четко усвоил, что надо копать от забора до обеда, а свою голову не включать, а то выебут. Ок, это тоже путь.
928 1760169
Какие сейчас актуальные и хорошие курсы есть? для trainee, которые можно купитьукрасть ?
929 1760175
Гайз, можно вкатиться без знания Спринга и Хибернейта? Даже не на джуна, а на оплачиваемую стажировку. Из того что знаю: Java core, SQL, git, паттерны, maven. Базовый уровень, разумеется. Немного html, css. Профильного образования нет.
930 1760177
>>60168

>Объяснить


Поопытней кого поищи, чтоб он тебе объяснял. Мишу попроси, например.
Свою точку зрения я высказал. Делаешь интерфейс, делаешь реализацию, потом где надо спринг это всё подтянет и соберёт.
Принцип открытости/закрытости. Захочешь ты чего-то особенного, понадобится когда-нибудь GayWhoreServie, достаточно будет просто другую имплементацию сделать и аннотацию поставить, чтоб не было неоднозначности.
"Потом отрефакторю, если понадобится". Ахуенные истории. На деле оно понадобится, когда там уже 9000 других сервисов на этой хуйне будет завязано и исправлять всё надо будет чуть дольше, чем сделать нормально с самого начала.
Буквально вот на днях с этим столкнулся.

>при чем тут GoF


У меня сейчас это в голове. До этого только читал про это, теперь на практике постигать начинаю, как и где это всё применять надо, чтоб методы на 100+ строк не лепить и прочий треш.
И чёт нихуя не смешно от того, что мои же ошибки кто-то 30 лет назад делал, рефакторил, а потом ещё и книгу написал, как правильно.

>надо копать от забора до обеда, а свою голову не включать, а то выебут. Ок, это тоже путь.


Да, и так пару лет нон-стоп, минимум. Это ты ещё забыл самое главное. Развиваться постоянно и учиться на ошибках, в том числе и чужих.
931 1760183
Какая по вашему мнению лучшая IDE ?
932 1760184
>>60183
Та, в которой тебе удобно работать.
933 1760185
>>60184
А с точки зрения простоты и перегруженности?
934 1760197
>>60177

> потом где надо спринг это всё подтянет


И без этого тоже подтянет, поверь мне

>понадобится когда-нибудь GayWhoreServie, достаточно будет просто


А если не понадобится? Попробуй прикинуть, сколько в твоих проектах всего подобных сервисов и сколько из них тех, где и правда понадобилось.

>"Потом отрефакторю, если понадобится". Ахуенные истории. Буквально вот на днях с этим столкнулся.


Штука в том, что именно такой рефакторинг - выделить интерфейс - это буквально кнопка в IDE, да и без нее было бы достаточно тривиально. Поэтому что-то мне подсказывает, с чем-то иным ты столкнулся. Не, бывают, конечно, случаи, когда и правда стоит сразу заложить какую-то гибкость. Если есть понимание, что она с высокой вероятностью будет нужна, и если расходы на нее прямо сейчас при этом не слишком велики. Но не по принципу "не задумываясь хуярим на каждый чих, а то вдруг понадобится".

>Да, и так пару лет. Это ты ещё забыл самое главное.


Знал бы ты, как забавно для меня звучат эти поучения
935 1760219
>>60163
А это не спринговый стек. Вместо EJB в спринге IoC (@Autowired и т.д.), они в целом по сложности/фичам аналогичны. JMS - честно говоря, хз, у нас над ним куча обёрток, и обычно юзаем их, а не javax.jms.* напрямую. JNDI - тоже обёртки, но там и учить нечего.
Надо ли знать, зависит от проекта. У нас куча легаси-говна на EE, проект изначально создавался вообще без спрингаю Но во многих других проектах только спринг.

>>60166

> Когда можно запросить к примеру 200к и чтоб на тебя не посмотрели как на идиота? Для меня это пока что тайна.


К тому времени уже будешь всю эту кухню понимать, и появится реальная уверенность в своих знаниях. Сможешь с полпинка вникать даже в самый хуёвый код, и знать, что всем от тебя нужно, даже если они этого не говорят. Ну, это предположение, я не сильно о долгосрочной перспективе сейчас парюсь, до этого пока как до луны.
936 1760221
>>60175
Изучи спринг и хибернейт, например. Это не так сложно, как кажется. Раз уж осилил SQL, то и это быстро осилишь.
937 1760228
>>60197

>А если не понадобится?


Ну и заебись. 2 строчки кода больше написал, вот это потеря.

>есть понимание, что она с высокой вероятностью будет нужна


Обычно ты нихуя не знаешь, делаешь то, что говорят. А потом приходит пм и говорит, что надо бы ещё вот это добавить. В изначально ущербную архитектуру это добавить сложнее, чем заранее перестраховаться и сделать задел на будущее.

>Знал бы ты, как забавно для меня звучат эти поучения


Не знаю, мне похуй. Ты спросил - я ответил. Или погоди. Ты выебнуться пытаешься? На харкаче? Где каждый второй это помидор 300к на удалёнке?
>>60219

>К тому времени уже будешь всю эту кухню понимать


>знать, что всем от тебя нужно, даже если они этого не говорят


Вот я по этому поводу парюсь больше всего. Ведь по сути, большую часть времени хуярю код. Мне по сторонам смотреть то и некогда, а проебать момент, когда скилы уже вырастут несколько выше текущего оклада, как-то не хочется.
938 1760235
>>60228

>2 строчки кода больше написал


Таскать по интерфейсу на каждый спринговый бин в проекте это далеко-далеко не 2 строчки.

>Обычно ты нихуя не знаешь, делаешь то, что говорят


Да-да, если ты рядовой, то делаешь то, что говорят, а то придет сержант и выебет, а как в жизни иначе, надо уметь вертеться. Все ок, дальше не интересно.
939 1760238
>>60228

> проебать момент, когда скилы уже вырастут


Этот момент будет сложно пропустить. Ты заметишь, что больше не бывает такого, что сидишь неделю над непонятым багом, а потом поправляешь одной строчкой. Что решаешь задачи быстрее, чем они были оценены. Что с тобой советуются и даже зовут поревьюить чей-то код.
940 1760252
>>60235

>каждый спринговый бин


Это уже шизофазия. Вызови врача тому, кто так делает, он кажись, помирает.

>делаешь то, что говорят, а то придет сержант и выебет, а как в жизни иначе


Иначе только на мамкиных борщах сидеть.
>>60238
Это разве не уровень помидора уже?
941 1760255
>>60252

> Это разве не уровень помидора уже?


В целом, да, но для него это уже давно само собой разумеется + ещё много чего сверху. Мидол же только начинает что-то понимать.
942 1760257
Вот бы мне чужой код понимать. Пока читаю конец метода, забываю что там было в начале, в голове не получается удержать всю логику. Хотя, возможно, это из-за того, что я кроме стандартной либы ничего не читал, где почти все реализовано будто сишниками с их битовыми операциями головного мозга.
943 1760260
>>60252

>Это уже шизофазия


Слушай, а это мы неплохо продвинулись по сути вопроса. Так может уже выходит, что не обязательно нужно иметь WhoreService в виде интерфейса c WhoreServiceImpl, и можно как-то эти случаи различать - когда нужен интерфейс, и когда нет? Если бы ты в изначальном посте по теме о чем-то таком писал, а не начинал в том духе, что лишь бы тимлид не выебал, меньше было бы непонимания.
944 1760263
>>60257
Огромные методы - ещё ладно. Хуже, когда долго что-то дебажишь, прыгаешь по фреймам стека, наконец-то дошёл до конца метода, возвращаешься в место вызова и вспоминаешь, что это всё была только первая строчка во внешнем методе, а там ещё 30 других вызовов, и за каждым кроется по такому же огромному куску кода, и в каждый надо вникать.
945 1760274
>>60260
Ты бы изначальным примером взял какую-нибудь шлюхину титьку, а не целый сервис, может так и было бы.
Хотя не. Тоже хуёвый пример. Сразу на ум приходит целая иерархия.
>>60257
Я как-то быстро привык. Первые недели 2 пиздос был, потом норм. Хотя, возможно, если сменить работу, то всё повторится.
946 1760286
>>60274

>Ты бы изначальным примером взял какую-нибудь шлюхину титьку


Я не знаю, что за иерархии титек ты себе представляешь и что именно тебя заставляет делать твой тимлид, но тот анон с вопросом про интерфейсы скорее всего имел в виду именно что эдакую шизофазию, которую и правда можно встретить. Когда код, как обычно, полон типичных сервисов-синглтонов с бизнес логикой (по размещению заказов на шлюх), но при этом каждый, сука, с интерфейсом. Ну просто потому что интерфейсы это хорошо, и буква D из SOLID велит юзать интерфейсы, да и вообще "вдруг понадобится".
947 1760295
>>60286
Под сервисом я представляю какую-то хуйню, которая будет в разных местах использоваться, возможно по разному.
Титьки - ну хотя бы натуральные/силиконовые. И шлюха же может их менять. Т.е. уже можно интерфейс делать и его в шлюхе указывать а не конкретный класс.

>Когда код, как обычно, полон типичных сервисов-синглтонов с бизнес логикой (по размещению заказов на шлюх), но при этом каждый, сука, с интерфейсом


>сервис


>по размещению заказов на шлюх


>синглтон


Ахуенные истории. Тут 15 лет опыта не надо иметь, чтоб понять, что их будет чуть больше одного.
Пример говно. Не надо в одну кучу сваливать объект, который очевидно будет в одном экземпляре и сервис, где само название уже намекает.

>что именно тебя заставляет делать твой тимлид


"Покажи где он тебя трогал..."
948 1760309
>>60295

>Ахуенные истории. Пример говно.


Перестал успевать за твоей мыслью. Чего будет больше одного? Сервис по размещению заказов не может быть синглтоном? На это намекает само название "сервис"? Это имеет в любом случае отношение к интерфейсам?

ООПшные иерархии разновидностей сисек это отдельная история (и так ли их вообще много в энтерпрайзе), но в первоначальном вопросе было про сервис, а это слово и правда намекает, только, кажется, не на то, о чем ты думаешь.
949 1760318
Перекат уже не за горами.
image.png771 Кб, 1280x720
950 1760329
951 1760441
Как же ЛЕНЬ учить спринготу. Кор шел куда лучше.
952 1760444
А как по мне, спринг намного интереснее кора.
953 1760471
>>60309
В моём воображении сервис почему-то явно никак не может быть синглтоном. Это штука, которая что-то обрабатывает и отдаёт результат. Уже подразумевается, что способы обработки могут быть разные. Вызвать шлюху с мобильного, через приложение, через сайт, разные бд шлюх, скидочки по праздникам.
954 1760473
>>60441
Просто его надо учить на деле, а не по 1000страничным докам и спринг про.
955 1760487
>>51473
Почитай разные книги, посмотри что больше нравится. Новшества Java 7 можно отдельно глянуть в книгах Хортсмана, например.
Стримы и лямбды тоже отдельно в современных книхах есть.
Java 9 нужна далеко не везде, но и по ней есть отдельные книги.
книга-Java-Библиотека-профессионала-Основы-том-1-Хорстманн-[...].jpg140 Кб, 1173x1600
956 1760493
>>59589
>>60487
Как по мне, Философия Java больше подойдёт тем, у кого уровень ниже, а свободного времени больше.
В противном случае следует читать Хортсмана. На русском даже есть
957 1760524
>>60493
Загуглил за 15секунд 9ое издание.
Апплеты, свинг, свич конструкции. Это местные так троллят ньюфагов, советуя такое?
958 1760589
>>60471
Даже если для вызова через сайт и приложение разные сервисы, ничто не мешает каждому из них в отдельности быть синглтоном. Разных сервисов (классов) может быть много, но каждый из них нужен в одном экземпляре. На всякий случай напомню, что в спринге все бины по умолчанию это синглтоны. Оглядись, они повсюду.

А даже если и не синглтоны, к вопросу об интерфейсах это все прямого отношения не имеет. Ну да и уже хер с ними.
959 1760593
>>60524

>Апплеты, свинг


Не читал, но не вижу в этом большой проблемы. Пропускаешь эти главы, читаешь только про кор.
960 1760597
>>60441
У меня обратная ситуация - на спринге приложения писать интересно, а как учить кор я хз. Писать унылую сортировку пузырьком, laba1 и машинные тесты javarush/codewars/hackerrank/leetcode.
961 1760667
>>60593
А нахуя тогда вообще это читать? Лучше уж мурзилку какую для быстрого старта, а потом что посовременней осилить, где стримам и прочему уделено больше времени. А для более глубокого понимания ООП и паттернов наворачивать более специализированную литературу. Того же Мартина и Фаулера.
Начитаются про свои свичи и 5ую жабу и долбят потом свои макарошки.
962 1760674
>>60597

>как учить кор


Коузен Кен, Современная жаба. Мне зашла легко, этого уровня тебе точно на ждуна хватит. 250 страниц всего, есть на русском.
Не помню разве что про женерики там, придётся отдельно где-то обмазаться этими PECS.
963 1760693
>>60674
Посмотрел оглавление - вроде норм. Никакой ненужно хуиты. Спасибо, анон.
964 1760694
>>60667

>Начитаются про свои свичи и 5ую жабу


А что там в новой жабе, что-то другое вместо свичей? А то чего-то вон в 13й их даже дорабатывают.
965 1760712
>>60694
Они finalize 20лет не выпилят никак, так что никуда свичи не денутся.
966 1760715
>>60712
Так а стоило бы выпилить, ты считаешь? Не нужны?
967 1760739
В чем проблема со свичами? Мина новый ньюфаг.
968 1760742
>>60739
Нет никакой проблемы, это хипсторки выёбываются.
970 1760770
>>60755
Мы тут с аноном на десяток сообщений развели срач про интерфейс сервиса со шлюхами, а тут пришёл ты и вкинул вот это.
Неплохо.
971 1760771
>>60694
Полиморфизм, Стратегия. Гугли.
Или вот выше анон ссылчку кинул, для тех кто любит саморазвиваться через ютуб.
972 1760786
>>60771

> Стратегия


Ура, десяток классов вместо нескольких строчек.
не зря там выше писали про измерение эффективности программиста в количестве LOC.
973 1760787
>>60770
Так а что там, во вкинутом, своими словами перескажи суть. Неужто говорят, что никак не обойтись без интерфейса на каждый бин?
974 1760790
>>60787
Никак не обойтись, а также желательно никогда не юзать циклы и if и реализовывать всё через ПАТТЕРНЫ, чтобы занимало в 100 раз больше места и было настолько же непонятно.
975 1760799
>>60790
А если так не делать, то выебет тимлид?
976 1760804
>>60787
Какой-то человек (не знаю кто это, но вроде норм, в закладки добавил) рассказывает про свич конструкцию, как она появляется на начальном этапе, как потом разрастается до хуеты из 250 кейсов. Рассказывает о том, что это всегда начинается с 2-3, ведь на начальном этапе никто не может предсказать сколько кейсов действительно будет. А потом добавляется ещё один. А потом кто-то ещё добавляет один. И т.д.
Рассказывает о том, что никто не хочет это говно рефакторить до тех пор, пока что-нибудь по пизде не пойдёт и в жопу ебать не начнут уже тимлида, а тот соответственно начинает ебать всех остальных уже без вазелина и вот это всё.
>>60790
Ты знаешь, вот я тебя тут даже поддвачну. Последние примеры с инжектами автовайред в методах интерфейсов это пиздец.
Ну то есть, когда он начал делать отсылочки на скалу, я примерно понял, что он хочет и зачем. Но это пиздец. Такое применять на крудах для шаурмечной у Ашота никто не будет.
Рядовая макака эту хуйню не повторит никогда, уж лучше свитч. А команду таких вот выпускничков топовых московских вузов себе могут позволить далеко не все.
977 1760806
>>60787
спринг потрошитель пишет бинпостпроцессоры поясняет за свич
978 1760814
>>60804

>рассказывает про свич конструкцию, как она появляется на начальном этапе, как потом разрастается до хуеты


Так а бин без интерфейса можно сделать или нет, я так и не понял. Опять не по теме что ли
979 1760824
>>60814

>>Так а бин без интерфейса можно сделать или нет, я так и не понял.


Компонент? Можно, но это как то не интерпрайзно получится. Помидор должен нахуячить десять слоев абстракции по паттернам с алгоритмами, чтоб понятно было за что ему платят 300к/нсек.
980 1760827
>>60814
Нельзя.
Лучше не смотри, там не то что бин без интерфейса, там вообще срака.
Он там имплиситно спрингом мапу собирает по айди бинов.
Т.е. Map<Id, Interface> для всех бинов.
Скала головного мозга, это ещё хуже чем GoF. Как только в коде появляется дохуя имплиситов порог входа взлетает невообразимо, магия спринга и хибернейта покажется мурзилкой.
981 1760852
>>60712
Так deprecated же.
982 1760869
Я всё понял. Раз Vector, StringBuffer, Hashtable, Dictionary и Properties не выпилили, то их можно активно юзать во всех новых проектах.
983 1760870
>>60814
Что бесит в интерфейсах - нельзя сразу перейти на реализацию одним кликом. Попадаешь на интерфейс и надо искать кто его реализовывает.
984 1760912
>>60870
В Жидбрейнсе Ctrl+B.
985 1760914
Не кажется ли вам, что и правда не хватает такого сервиса, чтобы шлюху заказать было так же удобно, как еду или такси
986 1760919
>>60914
Так есть же сайты с анкетами. Все как полагается: фото, отзывы, фильтрация по услугам, местонахождению, цене, фигуре. Как в интернет магазине заказать.
987 1760928
>>60919
Так эти сайты все же недалеко ушли от формата тупой доски объявлений. В 2020 уже надо так, чтобы тыкнул пару раз пальцем в телефон и все, к тебе едут. И потом с карты само списалось.
988 1760939
>>60016
У нас так делается, так джавадоки удобнее читать и писать.
989 1760945
>>60869

>Properties


Можно. Их даже спринг юзает под капотом с файлом application.properties
990 1760948
>>60939

>так джавадоки удобнее


Это кстати единственный адекватный аргумент, который тут пока звучал. А дальше, как мне кажется, стоит взвесить, настолько ли разница в этом удобстве велика и важна, чтобы ради неё фактически удваивать количество классов.
991 1760950
>>60948
Количество классов не удваивается. У тебя есть интерейс (заголовочный файл) и класс (реализация). Все по заветам предков.
992 1760966
>>60755
Спасибо, ахуенно.
993 1760976
>>60950

>Количество классов не удваивается


Почему тогда оно компилируется в WhoreService.class? А количество файлов *.java тоже не удваивается?

>Все по заветам предков


А еще предки завещали перфокарты и кобол
994 1760980
>>60976

>А количество файлов *.java тоже не удваивается?


Ты че доебался?
995 1760983
>>60912
И список из кучи классов где этот интерфейс упоминается. Это не то чтобы делало поиск невозможным, но минибатхерт каждый раз вызывает.
996 1760989
Дошел до

>ПОСТПРОЦЕССОРЫ БИНОВ


и не понял соли бугуртов, че вы вообще ими постпроцессите?
997 1760990
>>60989
Бугурт в том, что постпроцессить как раз нечего.
998 1760992
>>60990
И

>НЕСКОЛЬКО КОНТЕКСТОВ


тоже не нужны?
999 1760993
>>60992
Несколько контекстов по умолчанию есть в Spring Cloud. А вручную их создавать тоже не нужно, да.
1000 1760995
>>60989
В том-то и дело, что ничего, потому что нахуй никому не нужно. Читаешь талмуд по спрингу, про все эти постпроцессооы, контексты, эвенты, аспекты, прототипы, а потом из всего спринга юзаешь только @Autowired, @Service, Data, JdbcTemplate и @RestController.
1001 1760996
>>60993
А что из себя вообще контекст представляет? В доке слабо объяснили. Как я понял, отдельный контекст для сервисов, отдельный для контроллеров или типа того, не?
1002 1761044
>>60995
Реально?
1003 1761076
>>61044
Ну да. Ничего круче заебавшего всех процедурного программирования по сей день не придумали. Те же бины в спринге - это по сути модули с процедурами, а больше обычно ничего не юзают. Любые попытки сделать что-то сложнее превращают отладку в ад, хотя в идеале всё выглядит красиво.
1004 1761090
>>61076

>Ничего круче заебавшего всех процедурного программирования по сей день не придумали.


Где-то в параллельной вселенной при этом существуют сторонники DDD и rich domain model. Как там у них дела, интересно
1005 1761163
>>60980
Место на диске экономь.
1006 1761164
Перекат<ДжаваТред> перекат = new Перекат<>("#23");
1007 1761166
>>61164
Тред не последний на доске.
1008 1761168
Вот когда finalize выпилят, тогда и можно перекатывать
1009 1761177
Дай бог чтоб внуки перекатили.
1010 1761179
Прошлый тред был самым последним.
1011 1761285
>>61164
ПерекатFactory.getInstance().getNewПерекат(23)
1012 1761339
>>61285
@Autowired
ЖабаТредСервис тред;

тред.перекат();

ПерекатЕксепшен: прошлый тред не утонул
... 123 common frames omitted
1013 1761403
>>60983
Не упоминается, а реализуется. А что ты хотел если у тебя 50 реализаций?
1014 1761453
>>61168
А в исходниках openj9 он просто пустой метод, т.е. ничего не делает. И он не native.
1015 1761469
>>61453
Так ты его переопределять должен был раньше.
impl.jpg326 Кб, 1442x1015
1016 1761495
>>61403

>>Ctrl+B.


Не реализуется, а упоминается. Даже если он только в импортах прописан.
1017 1761504
CTRL-SHIFT-B
1018 1761520
Spel нужон?
1019 1761532
>>61520
Нет.
1020 1761542
>>61520
Да.
1021 1761555
>>61542
Пидора ответ.
image.png10 Кб, 536x140
1022 1761556
1023 1761558
>>61504
почти угадал
CTRL-ALT-B
1024 1761603
Подскажите пожалуйста, как тестировать методы (в JUnit), которые должны вешать блокировку чего-либо на определенное время? Например, есть у меня верификация пользователя, он 3 раза ввел неправильно логин/пароль и я ему вешаю запрет на логин на 10 минут. Вот как мне протестировать, что это действительно 10 минут, что при повторных попытках ввода время блокировки не продлевается и что в этот промежуток времени верификация не работает?
Ну или просто у меня чат-бот, который я хочу, чтобы отключался на 1 минуту и в этот момент ему нельзя было задать какой-либо вопрос, а он бы только отсчитывал время до пробуждения.

@TEST(timeout = )?
1025 1761611
>>61603
Я бы ничего не ждал (да и вряд ли подобное есть в junit), а вместо этого в начале и конце метода с тестом лез в базу, смотрел, сколько осталось до снятия бана, и сравнивал.
1026 1761612
>>61603
Эта аннотация не для твоего случая.
Время инжектить просто и все. Как ты текущее время получаешь? Если из какого-то источника, то мокаешь этот источник, если напрямую в метод передаешь, то подставляешь нужное тестируемое время параметром.
1027 1761613
>>61611
Я только осваиваю тестирование (как и всю джаву), вот и думаю, как сделать. Вполне вероятно, что усложнил задачу и это так не работает.
1028 1761616
>>61612
беру две переменные LocalDataTime, только одно now(), а вторую plusSecond, дальше у меня крутится while, пока они не сравняются.
1029 1761629
>>61616
Здорово. Я бы посмотрел как ты будешь тестировать валидность токенов, которые выданы на день, месяц, год...
Mockito тебе изучить надо в любом случае, а конкретно здесь архитектура такая должна быть, что ты время должен получать внешним источником - либо напрямую в метод - validateTime1(LocalDateTime now), либо заворачиваешь в сервис, сервис инжектишь в сервис проверки (в этом случае сервис получения времени можно будет мокать).
1030 1761631
>>61629
Добра тебе. По поводу день, месяц, год, я думаю, что это вопрос того, на какое именно время я хочу блокировать. У меня пока стоит задача до 1 минуты. Про Mokcito почитал, видимо нужно изучать. Еще раз спасибо.
1031 1761674
>>61631
Уточню про второй метод, мне не в падлу)
Спрашивай, если что.
image.png64 Кб, 945x598
1032 1761675
>>61674
Ой, блять, че я в тесте написал. Строки 62-64 - ошибки копипаста.
1033 1761699
>>61629
Смотрю многние говорят что моки это плохо и надо юнит тесты писать без моков и показывает в примерах какие то хэлоуворлды. А у меня сервисы которые лезут к другим сервисам и к репе. Я вот не пойму они все таки имеют ввиду свои хэлоуворлды, а сервисы ЭТО ДРУГОЕ (только у меня такой логики не так уж много - утилитные классы разве что проверять). Или я что то делаю не так? У меня обычно тесты выглядит так

@Test
when(WhoreRepo.getByTitSize(anyInteger)).thenReturn(makeTestListWith3Whores())
List<Whore> whoreList = WhoreService.getByTits(anyInteger)
validate(WhoreRepo).getByTitSize(anyInteger)
assertEquals(3, whoreList.size)

Я хз как тут избавиться от мока и сделать его обычным юнитом. Юниты с созданием объектов сложнее конечно, но суть та же - моки-вызов-валидация-ассерт.
1034 1761706
>>61699

>многние говорят что моки это плохо и надо юнит тесты писать без моков


Да? Кто так говорит и почему плохо? А вообще говорят много чего, у нас тут давеча вот if-else из языка выпилить предлагали. Другое дело, что ситуации бывают разные и тесты для них разные тоже.

>when(WhoreRepo.getByTitSize(anyInteger))


По моему опыту на попытках мокать/стабить работу с БД не уедешь дальше каких-то самых простых случаев. Лучше поднимать настоящую БД и заполнять ее данными.
1035 1761717
>>61699
Не слышал чтобы говорили что моки это в принципе плохо. Есть такое мнение, что мокать нужно только интерфейсы, но не имплементации, и я могу сказать что не согласен. Типа тест не должен знать деталей реализации. Но это именно тест интерфейса, а я хочу протестировать свою реализацию, поэтому идите нахер, я пишу тесты классов. Любой инструмент нужно юзать с головой, и наверное есть случаи злоупотребления, но я о них не знаю или не помню. Тесты это вообще мое личное пространство - если упадет моя реализация именно я буду виноват, что мой класс что-то не сделал. Поэтому я пишу тесты как удобно лично мне. У меня, например, есть своя мини-либа с рефлекшеном для тестов приват методов и других страшных вещей. Кто-то пишет либы для тестов статик-методов. Этому всему можно найти применение, ведь под конец дня главное чтобы продукт работал (пусть даже и со свичами).

Так что ты пока делаешь все правильно, а люди с "передовой", с прогрессивным мышлением, еще не до конца оформили эту свою идею бест практиками, паттернами и прочим.
1036 1761722
>>61717
А тем кто скажет, что мои классы потом будет поддерживать кто-то другой, для вас есть аргумент - буква O из SOLID (да и другие буквы тоже). Наследуйтесь, оверрайдите, с нуля реимплементируйте, а потом тестируйте "прогрессивно", по-научному, как угодно.
im.png4 Кб, 702x60
1037 1761776
Хоть читать веселее.
1038 1761779
>>61776
Я так спринг дату и спринг кор читал, полет нормальный. На английском медленно читаю
1039 1761809
Есть полгода опыта джуном, но очень давно (ещё до 8 Джвавы, но со спрингом 3).
Хочу сейчас опять вкатиться.
Последние 2 раза, когда ходил собеседоваться, я жидко оподливился на банальный вопросах о том, для чего нужен спринг.
Начал читать Про Спринг 5 в переводе. Ощущение, что я делаю что-то не так.
Подскажите, куда направить своё свободное время, чтобы сделать это наиболее эффективно?
1040 1761811
>>61809
Ну и для чего нужен спринг?
1041 1761817
Не нужен. Нужна Java EE 6.
1042 1761825
>>61817
Там слышал в каком-то AS запрещено вообще свои потоки создавать, он вместо тебя многопоточность делает сам. Вот это кайф наверное, не надо учить одну из сложных частей кора.
1043 1761835
>>61825
И правильно, ресурсы должны менеджиться сервером приложений, а не вручную, меньше вероятность неправилтного их юзания и последующих трудноуловимых багов. Юзкейсов у тредов не так много, да и в EE-мирке никто не перформансом не гонится.
1044 1761884
>>61825

>в каком-то AS запрещено вообще свои потоки создавать


О, это чудесная тема. Там ведь не то что буквально запрещено, так что поток не заработает, а просто в спеке записано, что не следуют так делать, потому что, дескать, AS не обязан обеспечить в твоем потоке корректную работу всяких ежб. Реально при этом обычно все работает, нечему там особо не работать.
Но бывало, видишь, что сидят какие-нибудь чуваки и не решаются создать поток, даже для какой-то ерунды, где не нужны ресурсы ASа. Прочитали же, что нельзя, так что мало ли. И вместо этого пердолятся через какие-то EE-подпорки. Потом наконец какой-то смельчак сделает поток, он прекрасно работает, и все такие - а чо так можно было. Дивный мир.
1046 1761979
посовтуйте библиотеку
пишу клиент для своего рест апи, нужна либра для хттп реквестов, не могу найти ничего годного, пишу на котлине кстати
а еще как отправить хттпс реквест? или это на сервере надо настроить чтобы только хттпс был?
1047 1762140
>>61674
Я надеялся, что ты что-то посоветуешь! Я уже спрашивал тут как-то на тему того, как можно проверить лежат ли объекты определенного класса в листе или нет, до сих пор твой код вкуриваю. Спасибо большое!
1048 1762194
Не понял, зачем нужен CommandLineRunner?
original.jpg93 Кб, 640x964
1049 1762195
>>61950
что интересного рассказал?
1050 1762230
>>62195
Попросил стакан воды и зубочистку.
1051 1762232
>>62194
Чтобы передать аргументы командной строки бину для какого-нибудь консольного приложения (ну или не консольного).
1052 1762414
Анон суть такова. Есть один сервис, и у него есть методы. Когда я к нему закидывают стрингу, некоторые из них возвращают мне лист ДТО с какими то данными или пустой лист. А некоторые только ДТО. Так вот лучше все таки обернуть это все в объект СервисРеспонс в который можно закинуть и ДТО и информацию об ошибке, если что-то пошло не так. Или просто возвращать Optional (если пустой -понятно что ошибка, но не понятно в чем) или же выкидывать эксепшены с информацией об ошибке? И что с эксепшенами? Трайкетчить это говно? Делать обычный, а не рантаймв стиле 7 жавы?
Склоняюсь к респонсу, но думаю не оверинжиниринг ли это. Мне уже как то удобней стало создать дто с одним полем, чем просто булин или стринг вернуть.
1053 1762436
>>62414
Это оверинжиниринг в любом случае, так что ебашь СервисРеспонс.
1054 1762492
>>62414
Если ты хочешь показывать сообщения об ошибке, очевидно через эксепшены, трайкечить в коде, вызываемый сервис. Хотя я бы просто опшиналы возвращал.
1055 1762691
Как настроить логгер таким образом, чтобы писать лог в абстрактном суперклассе, а в логах отображался класс потомка? Logback если че.
1056 1762713
>>61776
Где можно почитать про весенние бобы?
1057 1762718
>>43038 (OP)
Молю помогите, сегодня установил андроид студио 3.0.1, делая все по гайду с курсеры. Так вот там при установке надо дополнительно загрузить несколько библиотек, в том числе и Android SDK tools (не платформ тулс не билд тулс а просто тулсы ебучие). По скринам у чела была возможность загрузить прямо из SDK мэнеджера внутри студии, но у меня этой ебалы не было. В результате нихуя не работает. Я нашел эти тулсы архивом в инете, но куда его распаковывать не ебу. Помогите плз я нулевый совсем и тупой.
1058 1762741
>>62718
Перезагрузи андроид студио для начала
1059 1762750
>>62741
я так уже делал, и запускал несколько раз. думаю обновиться до последней версии и так уже пробовать
1060 1762751
>>62750
Поищи в студие в настройках эти тузлы, где-то есть возможность их автоматически скачать
1061 1762765
>>62751
там есть встроенный мастер их закачки, но там нет нужной ебалы, в настройках покопался вроде тоже нет, но он есть в инете. собсна вопрос в том, куда мне архив со всеми тулсами распаковать.
1062 1762780
>>62765
Попробуй хелловорлд запустить любой, наверняка тебе предложат установить это
1063 1762789
>>62780
хорошо, я попробую, спасибо. но когда я просто запустил рабочее пространство он изначально выдал ошибку и не предложил дозагрузить что-либо. в пизду, вообще пойду дальше теорфиз учить, не дано мне вашим программированием заниматься.
1065 1762963
Видел в вакансии,что "при условии знания Java Kotlin учится за 1.5 часа" правда или нет?
1066 1762977
>>62963
Правда. Ну может не за 1.5 часа, но за пару вечеров точно учится. Сразу после этого можно писать как на джаве с чуть другим синтаксисом, потом надо еще немного времени, чтобы освоиться и начать что-то делать более "идеоматично".
1067 1763042
>>62977
Да у тебя и спринг за пару вечеров учится.
1068 1763075
>>62414
AOP для обработки эксепшнов
1069 1763076
>>63042
Нет, спринг, увы, так не учится. Впрочем, могу уточнить - котлин за пару вечеров в том случае, если ты не тупой и если джаву знаешь достаточно давно и уверенно.
1070 1763096
>>63075
Не совсем понял твою идею. Контроллер обратился к методу, а тут рантайм эксепшен. Спринг эксепшен хендлер перехватил эксепшен и вернул ModelAndView пользователю с вставленным описанием ошибки? Так?
1071 1763150
>>63076
А как понять, что я не тупой для джавы?
1072 1763181
>>63042
У большинства знание спринга = Autowired+Service+RequestMapping.
2.5 аннотации, понятных по названию, можно выучить за полчаса.
Само собой, если заниматься вещами чуть сложнее крудов и/или обмазываться паттернами, тут уйдёт дохуища времени, но почитай тред.
Всё что чуть сложнее вызывает негативную реакцию.
"REEE у тебя гофчанка, используй свич, мы так 10 лет делали и ты делай! "
"REEE, хибернейт со своей магией не нужен, идите вы нахуй, я буду делать всё через JDBC, мне Transactional вообще нахуй не упал!"
"Spel, какой нахуй spel, ни нужен, я сказал!"
И так далее.
1073 1763187
>>63181

> хибернейт


> Transactional


Никак не связано.
1074 1763206
>>63187
Я хотел сказать, что если всё, что чуть сложнее основ отбрасывать с аргументацией "ни нужна", то выучить спринг за пару вечеров это вполне посильная задача.
1075 1763212
>>63206
Понял.
1076 1763235
В джаве есть интересные задачи?

Мне вот например было интересно учить алгоритмы разные, но веб разработка кажется максимально скучной.
В плюсы что-ли перекатиться?
1077 1763247
>>63235
Смотря что считать интересным. Дрочки алгоритмов, оптимизации и прочего здесь сравнительно немного.
Джава - не обязательно веб, а любой бекенд как таковой, хоть у тебя сокеты, вебсокеты, SOAP, очереди сообщений, REST. Кому-то это интересно.
1078 1763249
>>63235
Перекатись. Выучить синтаксис плюсов, как познать суть вселенной.
1079 1763251
>>63247
Майнкрафт кстати был на Свинге написан?
1080 1763252
>>63247
Ну вот алгоритмы и оптимизация в целом интересно, да.
Правда боюсь, что перекачусь на плюсики, а буду хуярить формочки на Qt или MFC каком-нибудь. Ну или под железки что-то писать, а это ну хз, не особо вкатывает и перспективы так себе.
1081 1763271
>>63251
Хз, особой разницы нет, с помощью чего создаётся окошко для контекста OpenGL. А дальше LWJGL.

>>63252
В формочках на самом деле тоже может быть полно задач оптимизации и алгоритмов, но это должна быть какая-нибудь САПР, а не хуйня из пары окошек. Но в железках будет точно.

Тут ещё многое упирается в то, есть ли у тебя тонна времени и усидчивости, чтобы осилить плюсы и найти на них норм работу, потому что это намного сложнее, чем в джаве. Я вот решил не рисковать, хотя сам изначально хотел плюсы (да и до сих пор хочу).
1082 1763277
>>63235
Мне мои задачи нравятся. Не только очередной круд писать, а оптимизировать запросы к бд, например, думать об архитектуре, сделать что-то асинхронно по возможности. Иногда есть нестандартные вещи, например сделать какой-то алгоритм для обработки хуйни_нейм, которого нет в библиотеках.
Вообще нравится думать о том, как реализовать то, что хочет пм в проект добавить, так чтобы и быстро, и красиво, и понятно всё получилось.
Но я джун, может и заебёт со временем, хз.
1083 1763588
>>63181

>"REEE, хибернейт со своей магией не нужен, идите вы нахуй, я буду делать всё через JDBC, мне Transactional вообще нахуй не упал!"


Это все до первого инцидента с утечкой конешенов из-за некорректной работы afterCommit()
Вот тогда то и начинаешь ценить простой JDBC.
1084 1763675
>>63588
А новичку надо его учить? Просто может это какие-то основы, которые надо знать.
1085 1763676
>>63675

> хибернейт

1086 1763723
>>60755
А есть еще какие-то штуки наподобие последнего? Шишка встала.
1087 1763732
>>63588

>Это все до первого инцидента


Это примерно как из-за одной поломки автомобиля решить ходить отныне только пешком
1088 1763733
>>63732
чел ты долбаеб
1089 1763755
>>63732
Это не поломка, это ДТП да еще с тяжелыми последствиями в виде нескольких прод инцидентов и недели потраченной на исследования, написание пула с трассировкой кто берет конекшены и прочее.

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

И я не утверждаю что @Transactional не нужен, я говорю про то что у него тоже есть проблемы.

>>63675
Кого его? Хибер? Да нужно, т.к. он много где используется.
1090 1763770
>>63723
Ну можешь пересмотреть другие видосы потрошителя. У него их штук 5 по спрингу.
1091 1764088
Какая самая сложная часть кора - многоэтажные наследованные дженерики или многопоточность?
1092 1764090
>>64088
Потоки конечно.
samuraigirl.jpg439 Кб, 1920x1077
1093 1764178
Хай, анончики, поясните долбаебу за уместность использования интерфейсов: вот у меня есть классы Downloader и ImageDownloader, первый отвечает за загрузку документов, второй соответственно картинок. Логика их взаимодействия такая:
class Downloader{
download(несколько, аргументов){
//.....
//некоторый код
//.....
ImageDownloader().downloadImage(аргумент);
}
}

class ImageDownloader{
downloadImage(аргумент){
//.....
//парсинг документа (аргумента)
//.....
downloadFromField(некоторые, аргументы);
}
downloadFromField(некоторые, аргументы){
//загрузка и сохранение изображения
}
}

Так вот я тут почесал репу и подумал: а может лучше Настя лучше написать интерфейс, сделать от него имплементс в выше описанных классах и реализовать какой-нибудь там download..()?
1094 1764192
>>64178
Интерфейсы не нужны только ради интерфейсов. Если у тебя много кода, которые что-то скачивает, но не знает, что именно, т.к. реальный объект передаётся извне, то лучше сделать интерфейсами. Если такого нет - забей.
А ещё можно придумать какой-нибудь DownloadStrategy.
1095 1764220
>>64088
В лесу из наследований и генериков ничего страшного нету, а многопоточность - это уже неприятно и неловко
1096 1764303
>>64192
Понял, спасибо,
1097 1764637
Когда мавен 4?
1098 1764657
>>64637
Жду не дождусь. Наконец-то дефолтную версию джавы поменяют с 5 на 8, а maven-war-plugin по умолчанию больше не будет ругаться на отсутствие web.xml.
1099 1764756
Какой плюс от кроссплатформенности Явы в бэкенде?
1100 1764763
>>64756
Девелопишь на винде/маке, деплоишь на линупс.
1101 1764850
>>64756
Тут потихоньку ARM сервера и десктопы подвозят.
изображение.png46 Кб, 813x417
1102 1765346
При создании JFrame размером 1280х720 getWidth/getHeight почему-то возвращают 1292х732, хотя размер окна вроде нормальное.

Весь код: pastebin.com/FbsVQdRu
1103 1765561
Есть переменная int a = 55234;
как её перевернуть, чтобы вышло a = 43255?
1104 1765568
>>65561
Сделать из нее строку, перевернуть строку, перевести в int и присвоить.
1105 1765569
>>65568
ладно, а как лучше строку перевернуть?
1106 1765573
>>65561
a = Integer.parseInt(new StringBuilder(Integer.toString(a)).reverse().toString());
Не, ну можно, конечно, сделать цикл, где ты будешь b умножать на 10 и прибавлять остаток от деления a на 10, а саму a делить на 10, пока не будет 0, но мы ведь не в C++-треде.
1107 1765577
>>65569
У меня вот так получилось.
a = Integer.parseInt ((new StringBuffer(a.toString()).reverse().toString()));
1108 1765580
>>65577
А с переполнением че будешь делать?
1109 1765584
>>65580
Я даже не знаю, что происходит в Java при переполнении. Если будет отрицательным, можно max int присвоить, или сделать выброс exception.
1110 1765593
Жаба кризис, несколько дней ничего не учил.
1111 1765594
>>65580
А где в изначальном вопросе требование, что с ним надо что-то делать?
1112 1765596
>>65594

>Есть переменная int a = 55234;


>как её перевернуть, чтобы вышло a = 43255?


Значит тип поменяться не должен, при этом число должно перевернуться.
1113 1765598
>>65593
Сейм. Какой-то хуйней страдаю.
1114 1765600
>>65598
Я вот пиксельки несколько дней рисую.
1115 1765602
>>65573
Ну вообще эти перевороты числа и надо делать интежеровским делением и остатком. Мне препод не засчитывал, говорил, что я со строкой манипуляции делаю, а он мне число дал.
1116 1765603
>>65602
На Java?
image.png190 Кб, 300x236
1117 1765604
А я вот сел за доку по спринг бут, думал "э-ге-гей, сейчас мне расскажут про интересные хипстерские технологии", открываю, а там 500 страниц сухой конфигурации всякой хуйни.
1118 1765605
>>65603
На любом статическом языке. Это тупо алгоритмическая задачка, а переворот строки это уже другая задача. В проектах ты вряд ли будешь переворачивать цифры.
1119 1765606
>>65604
Давай вместе проект делать.
1120 1765608
>>65606
Так я пока ничего не умею толком. Хочу вот мини-банковскую систему написать.
image.png13 Кб, 574x68
1121 1765609
>>65596
да пацаны, не парьтесь, я уже всё сделал, спасибо
1122 1765613
>>65346
Бля ну помогите пожалуйста. Я конечно понимаю что для вас это максимально тупой и лёгкий вопрос но я реально не знаю.
6.png10 Кб, 712x306
1123 1765614
>>65609
Вот еще вариант.
1124 1765615
>>65604
Жыза, анончик.
1125 1765617
>>65613

>для вас это максимально тупой и лёгкий вопрос


Вряд ли здесь кто-то в этом шарит, потому что свинг нахуй никому не нужен.
1126 1765621
>>65346
Может, у тебя возвращает с учетом рамки? Сделай alt+prt sc, посмотри ширину.
1127 1765622
>>65614
имхо, такие блоки кода для не сложных в понимании операции это такое себе
1128 1765625
>>65622
Как у тебя блок кода связан с пониманием?
На мой взгляд, для простых операций наоборот лучше лямбды писать, а не отдельные функции.
image.png128x124
1129 1765626
>>65346
Это у тебя или у меня сломан свинг?
Безымянный1.png6 Кб, 1294x765
1130 1765628
>>65621
Размер окна с учётом декораций 1294х765. На картинке красный прямоугольник размером 1280 720, цифры getWidth/Height.

>>65626
А как это так. Ты мой код просто скопировал? В смысле.
1131 1765637
>>65628
Короче, ты охуеешь, но разные джавы показывают разное значение. Я на openjdk 14 запускал, сейчас запустил на openjdk 8, она вообще показала 1290x730.
1132 1765638
>>65628

> А как это так. Ты мой код просто скопировал? В смысле.


+
Другой анон.
1133 1765641
>>65628
Аааа... Почему-то внутри IntelliJ IDEA Community Edition 2020.1.3 x64 оно не правильно работает. А вот просто если запустить то нормально.

>>65637
Получается что так, наверное нужно с 8 на 11 переходить. Мне вроде ещё тут говорили что 8 скоро легаси будет.
изображение.png10 Кб, 1601x938
1134 1765646
>>65641
Да, сейчас в IDEA запустил через Java 11, всё нормально работает. Окно такое большое так как у меня 125 масштабирование стоит, главное что внутри окна всё правильно считает.
Спасибо вам! Один бы я до такого не додумался.
1135 1765946
>>65606
Че за проект то делать собрался? Библиотеку очередную?
1136 1765951
Что-то от модульности в джаве 9 у меня остаются ощущения неествественности и неудобста. Ими действительно кто-то пользуется, реально собирают дистрибутив JRE с помощью jdeps и jlink, или все тупо ставят JDK на прод?
1137 1765952
>>65951
Хз, мы на 8 джаве до сих пор.
1138 1765954
>>65952
Это-то да, но кто-то ведь переехал на 11, а там модули. Бррр.
1139 1765965
О, я понял. Жре теперь надо качать здесь: https://adoptopenjdk.net/releases.html
И никакой мозгоебли ради уменьшения рантайма на какие-то 50 метров.
Всё сложнее и сложнее. Лучше уж закрытие сорцы и коммерческая лицензия, ей-богу.
1140 1765969
>>65965
Зачем вообще что-то качать, если можно выставить нужное сдк из коробки в идее.
1141 1765983
>>65969
Чтобы не устанавливать идею на продовский сервер.
Меня интересует именно рантайм на проде, при разработке-то понятно, что JDK будет в любом случае.
1142 1765997
>>65951

>Ими действительно кто-то пользуется


Не замечал такого

>все тупо ставят JDK на прод?


И до 9 не было причин не ставить на сервер jdk
1143 1766110
Помогите тупенькому. Возникла необходимость сконвертирвать интерфейсную переменную в массив байтов, как это лучше сделать?
1144 1766144
>>65997
Понял, спасибо.
1145 1766207
>>66110
import java.io.Serializable;

interface Int1 extends Serializable {};
1146 1766337
Скоро закончу свой говновуз по ит специальности и надо бы решиться куда идти, выбор стоит между java разработчикомм и тестировщиком. Куда проще попасть и где проще будет работать в дальнейшем обычному средне-специалисту?
1147 1766346
>>66337
А ты почему не пытался на предпоследнем курсе стажировки проходить?
1148 1766350
>>66337
Проще, конечно, тестировщиком, но это настолько рутинная и унылая работа, что ну нах.
1149 1766353
>>66337
Работать надо там, где тебе нравится. Или хотя бы не возникает неприязни от собственной деятельности.
По-другому ты не сможешь жить, будет вот это т.н. выгорание.
1150 1766355
>>66346
Я проебался и попал в около государственную компанию... А там был пиздец никак не относящийся к тому,что я хотел попробывать, 1с битрикс пхп и прочее
1151 1766358
>>66350
Ну я ,например, разницы не вижу между автоматизатором и программистом, оба пишут код, а вот ручные тестировщики, это да, одно уныние.
1152 1766365
>>66358
Я про ручных. Вообще, автоматизаторов почему-то некоторые несправедливо считают на ступень ниже разрабов, хотя разницы никакой.
1153 1766366
>>66353
Для меня и то и другое всё же будет просто работой, а сейчас просто смену курса делаю, ибо нравился питон, но не смог залететь никуда на стажировки с ним, ибо там требовались мальчики математики и аналитики, а не я.
В джаве пугает пока объём необходимый для старта, но нравится то, что она распространена везде где только можно и с работой проблем не будет, если приложить должные усилия, а в тестировании напрягает проходить через ручного тестера.
1154 1766399
Пс, жители двачей, среди вас тут знает хорошие конфы для JVM комьюнити?

Я знаю как минимум одну, которая основана спикерами известных конференций (JPoint, Joker), там часто можно встретить "звёзд". Но тем не менее, известны ли более локальные?
1155 1766403
>>65608

>Хочу вот мини-банковскую систему написать


Что значит мини-банковскую систему?
1156 1766415
>>66403
Да он охуеет от предметной области банка. Он наверное имеет в виду перевод денег с одного акка на другой.
1157 1766421
>>66366

>просто работой


И как скоро ты начнёшь лезть на стену от этой работы? Жаба это стабильность, но раз ты вчерашний студень, то уж лучше бы ещё с питоном повозился. Мне кажется там больше всякой хипстерской хуйни, не так скучно, как ковырять очередное легаси.
1158 1766425
>>66415
Ну на самом деле это полезно, если нету опыта в построении устойчивых систем.

Даже задача про написание CRUD приложения без использования баз данных и транзакций, JDBC темплейтов и тд уже очень интересная. Один раз мне дали такую на собесе, наши обсуждения ушли достаточно далеко
1159 1766430
>>66399
Зачем, если двач уже есть.
1160 1766436
>>66430
Ну нужно мне
1161 1766449
>>66425

> CRUD приложения


>без использования баз данных


Это как?
1162 1766455
>>66449
Задача была такая:
1) Напишите rest api сервис с помощью spring boot
2) данные храните в оперативной памяти, они не должны быть персистентными

Прикол задачи заключался в том, что как написать потокобезопасный код, который не испортит данные, когда запросы прилетают на воркер
1163 1766460
Что будет со спрингом, если есть 3 класса компонента A B C. А принимает В autowired, B принимает С, а С принимает А. Те, цикл получается. Не скомпилируется?
1164 1766465
>>66460
Очень популярный вопрос, в интернете много материала на эту тему https://www.baeldung.com/circular-dependencies-in-spring
1165 1766470
>>66455
И в каких структурах ты хранил?
1166 1766481
>>66460

> Не скомпилируется?


Если бы. Стектрейснет при запуске.
1167 1766483
>>66470
Это уже вопрос реализации. Я лично хранил в обычной HashMap'е, но доступ к данным был через Reentrant Read/Write lock. Безусловно, ConccurentHashMap'а всё это имеет под капотом и доступ на чтение тоже идет через read lock, но мне было важно показать, что я понимаю принцип работы мьютекса и как нужно ставить блокировки, какие стандартные библиотеки использовать и тд.

В итоге мне задали достаточно интересные вопросы, мы поболтали на тему многопоточности
1168 1766497
>>66403
То и значит. Случайно наткнулся на легаси туториал по javaee5 от оракла, там была тема "the duke’s bank application", плюс еще нашел пару статеек, решил потом реализовать через спринги. Вообще, хотелось бы не только перевод денег с одного акка на другой, ну как получится.
1169 1766513
>>66497Н>>66497
А какой у тебя вообще опыт работы, если не секрет?
1170 1766516
>>66513
Его нет.
1171 1766520
>>66516
Тогда начни с чего-то попроще, куда тебе целую банковскую систему писать.

Сначала рекомендую разобраться с тем, как в принципе работает транзакция, что есть под капотом у движков SQL, тот же transaction log.

А то при создании банковской системы нужно не только учитывать правильный конкурентный доступ к данным, но так же стоит учитывать идемпотентность операций, ретраи, ролбэки

Еще для начала можно почитать очень полезные книжки и посмотреть курсы по многопоточности
1172 1766522
>>66483
Не перезвонили? =(
1173 1766524
>>66522
Почему же, работаю сейчас у них
1174 1766529
>>66524
Хорошо. А то ты так достаточно отстраненно писал "однажды на каком-то собесе..." что я волноваться начал.
1175 1766530
>>66520
Конечно, все это я буду осваивать, спасибо.
1176 1766535
>>66529
А чего волноваться? Думаю у каждого разработчика со временем возникает необходимость в собеседовании. Кто-то делает это раз в пол года, чтобы узнать свою актуальную цену на рынке6 кто-то реже, кто-то чаще. Я сам хожу, вот за весну был на 3-4 собесах (три из них это сбертех)
1177 1766604
>>66460
Если автовайред написать над полем - должно работать без проблем.
1178 1766616
>>66520
Если в банках так заботятся с роллбэками, почему до сих пор нельзя вернуть отправленные деньги хотя бы в первые 30 минут? Ни в одном банковском приложении такого нет.
1179 1766626
>>66616
Транзакции так не работают. Если ты отправил деньги, и они упали на чужой счёт, то транзакция уже закоммитилась. Закоммиченную транзакцию нельзя отменить, можно только провести ещё одну транзакцию, противоположную по действию. Но это именно две транзакции, а не откат первой.
Но даже если бы можно было откатить, это всё равно не сработает. Банк - это сложная распределённая система из сотен сервисов, транзакции живут только в рамках одного сервиса, из-за чего, кстати, микросервисная архитектура плохо уживается с таким использованием транзакций.
Ну а почему нельзя вернуть отправленные деньги - это не техническое ограничение, а бизнес-требование. Сам я об этом не знаю, но подозреваю, что чтобы не кинули никого (оплатил в магазине, сразу откатил транзакцию и убежал, к примеру).
1180 1766627
>>66626
мимо
image.png303 Кб, 1303x772
1181 1766636
1182 1766637
>>66636
Ты сука самый умный?
1183 1766642
>>66636
Даже в школьных олимпиадах на паскале не прокатило бы, там всегда от неизвестрых входных данных.
1184 1766650
>>66626
Да я понял, что неправильно заюзал слово "rollback". Но вопрос в другом. А именно откатом в предыдущее состояния, как бы бэкап.
1185 1766739
Поясните за гиперскилл пожалуйста
Типа я могу им неделя+месяц+месяц бесплатно пользоваться, а потом 25 баксов в месяц придется отваливать?
Алсо после прохождения всей джавы на данном ресурсе через проекты будут ли иметься навыки для поиска работы джуном, или ещё пахать и пахать?
Заранее спасибо
1186 1766787
Лишь бы не читать книги.
1187 1766899
>>66739
По завершении курса сразу автоматом офер от джетбрейнс прилетает на 300к/нс
1188 1766935
>>66787
Я просто отвечать на это говно перестал уже. Если человек тред не может прочитать, что уж о книгах то говорить.
1189 1767151
>>66337
Пчел, работа тестировщиком это, мягко говоря, работа для тех, кто не осилил разработку. Вот и думай.
1190 1767157
TP1viV7XEo.jpg243 Кб, 1388x1152
1191 1767664
Жабка
1192 1767666
>>67664

> Жабка


Возьму на следующий тред, если никто так и не перекатит
1193 1767691
>>67664
Прикрепи при перекате обе пикчи, так надо.
1194 1767857
Хочу написать парсер, но парсинг сайта требует селениум, а брать запросы апи через приложение на андроиде я не умею.

Как можно подсмотреть апи в приложении? Достаточно ли открыть через Apktool приложуху и походить по коду, или может ваершарк какой-то поставить и посмотреть урлы, которые, вероятно, будут по https?
1195 1767947
>>67857
Если у сайта вообще есть апи, целесообразнее научиться его использовать. Бывает и такое, что апи можно использовать свободно, а парсинг детектится и банится (потому что рендерить хтмл намного тяжелее, чем гонять жсонки).
Ну а если нет, ваершарком охуеешь копаться, даже если хттп. Проще смотреть исходники.
1196 1767960
В метод передается два разных List. Как по-умному сразу по двум последовательно пройтись? Чтобы без повторений кода, без вынесения цикла/стрима в отдельный метода и вызывания два раза.
1197 1768000
>>67857

>Как можно подсмотреть апи в приложении? Достаточно ли открыть через Apktool приложуху и походить по коду, или может ваершарк какой-то поставить и посмотреть урлы, которые, вероятно, будут по https?


Тебе надо будет добавить свой сертификат и потом уже перехватывать трафик https://medium.com/androgoat/intercept-https-traffic-from-android-app-androgoat-part-1-c563e6350fbe

Хотя особо хитрые приложухи могут такой финт ушами обнаружить
1198 1768011
>>67960
Stream.of(collectionA, collectionB)
.flatMap(Collection::stream);

Stream.concat(
collectionA.stream(),
collectionB.stream());
1199 1768017
>>68011
Как все красиво оказалось. Я нуб еще в стримах.
1200 1768100
Правда, что на джаве в основном пишут одни круды и прочие скучные приложения?
1201 1768106
>>68100

> круды


Наглый пиздёж. В основном придётся писать service layer, то есть тонны бизнес-логики. А "круды" пишутся мгновенно и сразу забываются. Скучно ли тебе копаться в бизнес-логике, решай сам.
1202 1768114
>>68106

>бизнес-логике


А вот что это? Я просто немного из далекой сферы, студент, пишу на плюсах разную геометрию, расчеты на прочность, МКЭ, вот это все.
Думал в джаву вкатиться, но непонятно, какие вообще задачи вы решаете.
1203 1768117
>>68114
Бизнес задачи
480x49707ee836decdb21ed112d106f75e259ca8@480x4970xc0a8399a7[...].jpeg36 Кб, 480x497
1204 1768118
Какую книгу по Спринг Буту прочитать если знаешь только синтаксис языка? А то по книгам которые я пытался начать читать, складывается ощущение , будто авторы думают, что я уже знаю какие-то основы.
1205 1768119
>>68117
Я вот сейчас пишу штуки для расчета сопромата - потом инженер может на компьютере загрузить геометрическую модель и прога посчитает нагрузки и деформации, и инженеру уже не нужно все вычисления делать вручную, как это было 100 лет назад.

А что у вас? Какие-нибудь конкретные примеры есть?
1206 1768120
>>68118

>будто авторы думают, что я уже знаю какие-то основы


Так и есть.
1207 1768123
>>68114
Сложно сказать "в общем". Это куча алгоритмов, сильно завязанная на предметную область и бизнес-требования. Приложение - это ведь не просто обёртка над данными в табличках, но и всевозможные обработки и преобразования, отправка сообщений в другие системы, обновление статусов и прочих характеристик бизнес-сущностей с учётом их жизненного цикла, что-то написать в лог для безопасников, что-то отправить в аналитику и т.д.
1208 1768124
>>68119

> конкретные примеры


Светить ими никто не хочет, велик шанс деанона. Да и сильно зависит от каждого конкретного проекта.
1209 1768148
>>68120
А как тогда познакомиться с основами Бута?
1210 1768150
>>68119
Это говноскрипты какие-то.
1211 1768153
>>68119
То есть, пардон за предыдущее сообщение, ты с нуля сам придумываешь аналог ансиса\фемапа? Нихуясе.
1212 1768157
А я не смог в бизнес-логику и меня уволили. Ну не понимаю я ваши ФПСВ в ОГХЛ отчеты.
1213 1768160
>>68148
Если ты не можешь вкатиться в спринг, потому что не знаешь спринга, как ты собрался вкатываться в программисты, не имея коммерческого опыта?
1214 1768172
>>68160
Оставь такие посты для мвп-треда.
1215 1768179
>>68160
Насколько же годный ответ! Сначала подумал, что это ирония, а потом задумался, вспомнил свой опыт и понял, а ведь так оно и есть. Лучше и не скажешь.
Для работы нужен опыт, для опыта нужна работа. Больше сыра = больше дырок = меньше сыра.
>>68172
Отрицание это первая стадия, насколько я помню. Не ёрничай, а лучше подумай как разорвать этот круг.
1216 1768228
>>68172
Хорошо было, когда они сидели в своём загоне и не высовывались, а теперь скоро весь /pr превратится в филиал /b. Пиздец. Даже в /s не так токсично.
1217 1768229
>>68228

>когда они сидели в своём загоне


Ты про вкатывальщиков? "Сап дващ, какие курсы проплатить, чтоб через месяц 300к получать? Сам 30лвл, вышки нет."
1218 1768252
>>68229
В том числе.
1219 1768256
>>68119

>Я вот сейчас пишу штуки для расчета сопромата


А джавист может писать, например, штуку для расчета комиссии при заказе шлюхи переводе денег между счетами. Только расчета не в смысле перемножения чисел по формуле, а в смысле учета всех бизнес-требований, которые на нее влияют. Куда именно переводим? Кто такой отправитель и сколько он уже переводил в этом месяце? Нет ли сейчас каких-то временных скидок-акций, которые отключают эту комиссию? И прочее и прочее в таком духе. В процессе может быть придется и в свою БД запросы поделать, и к другим системам обратиться, сделать с ними интеграцию. Задача и во всей бизнес-логике не запутаться, и при этом сделать что-то надежное и не совсем уж тормозное.
1220 1768266
>>68256
Мне такое больше нравится, чем сухие расчеты по формулам.
мимо
1221 1768270
>>68119
Ну или правильно формировать платёжные документы, которые потом уйдут в систему >>68256 -куна.
1222 1768297
Почему все упирается в business логику? Любой бэкенд же можно написать на буте или нет?
1223 1768304
>>68297
Как эти два вопроса связаны?
Если правильно тебя понял, "Бекенд, который не энтерпрайз" на джаве пишут редко.
1224 1768452
>>68297

> Почему все упирается в business логику? Любой бэкенд же можно написать на буте или нет?


Ты вообще понимаешь, о чем пишешь? Причем тут бизнес логика и фреймворк? Ты можешь хоть на иврите писать, если заказчик ожелает остаться на этом довольным
1225 1768453
>>68304

> Если правильно тебя понял, "Бекенд, который не энтерпрайз" на джаве пишут редко.



Ну тут спорно
1226 1768465
>>68453
Ну да, пишут. Но намного реже, чем энтерпрайз джава ее веблоджик оракл 10 абстрактных фабрик из 10.
1227 1768467
>>68453
А это смотря что считать энтерпрайзом. Крупный интернет-магазин, например, это он или нет?
1228 1768473
>>68452

> Ты вообще понимаешь, о чем пишешь?


Нет.

> Причем тут бизнес логика и фреймворк?


Везде, где упоминается Spring, говорится о бизнес логике, поэтому кажется, что в другом его использовать, как пересекать пустыню на лошади.
Он слишком сложен или не удобен для остальных не бизнес задач? Например, если я захочу сделать бэкенд сайта с регистрацией пользователей и покупками какой-нибудь еба-хуйни, это бизнес логика? Или написать Двач бизнес логика? Почему лучше что-то, а не Спринг в таком случае?
Или, например, вообще не иметь дело с вебом, но использовать какие-нибудь части вроде бинов, то же самое, что использовать мужику менструальную чашу?
1229 1768476
>>68473
Подходит, но это из пушки по воробьям. Спринг рассчитан на огромные тяжёлые проекты, и всякую мелочь целесообразней писать на пыхоплеяде.
1230 1768484
>>68467

> А это смотря что считать энтерпрайзом. Крупный интернет-магазин, например, это он или нет?


Ну какой-нибудь wildberries - конечно интерпрайз
1231 1768487
>>68473

> > Ты вообще понимаешь, о чем пишешь?


> Нет.


> > Причем тут бизнес логика и фреймворк?


> Везде, где упоминается Spring, говорится о бизнес логике, поэтому кажется, что в другом его использовать, как пересекать пустыню на лошади.


Переведи два слова: "бизнес" и "логика" на понятный тебе язык. На крайняк уже можно было и загуглить.
1232 1768501
>>68484
Тогда, я думаю, сложно не согласиться, что на джаве скорее пишут тот бэк, что ближе к wildberries, чем к какому-нибудь магазинчику электрочайников (который на пхп)
1233 1768511
>>68487

> Переведи два слова: "бизнес" и "логика" на понятный тебе язык


Бизнес, это когда Вася обкашливает вопросики с родственником по маминой линии. Логика - из А следует Б из Б следует С, значит, из А следует С.
Ну и хули я тут должен понять, сделать теорию относительности бизнес логики?

>Бизнес-логика — в разработке информационных систем — совокупность правил, принципов, зависимостей поведения объектов предметной области (области человеческой деятельности, которую система поддерживает). Иначе можно сказать, что бизнес-логика — это реализация правил и ограничений автоматизируемых операций. Является синонимом термина «логика предметной области» (англ. domain logic). Бизнес-логика задает правила, которым подчиняются данные предметной области.



Это получается типо ООП для какой-то области, которую мы пишем. Весьма расплывчато, но можно еще понять.
1234 1768515
>>68256
Я писал расчет цены опциона по Б-Ш, работало нормально, из бизнеса никто не жаловался, что мы там клиенту не то напрайсили.
1235 1768531
Вкатиться джава стажером или джуном на неполный день вообще возможно? В Москве.
Везде где смотрел, нужны на полный день люди. А мне нужно как-то обучение в вузе еще совмещать.
1236 1768540
>>68531
Маловероятно.
1237 1768552
>>68511
Я конечно не люблю этого майдауна, но для твоего уровня самое оно.
https://www.youtube.com/watch?v=9DW-xdwjop8
1238 1768579
>>68531
Если студентик из норм вуза, то, скорее всего, тебе будут доступны программы стажировки в крупных конторах.
Если вкатывальщик, то, скорее всего, ничего не найдешь.
1239 1768606
>>68579
А как их искать, эти стажировки? В университет никто не приходит и не зовет, кроме разве что мейла. Пытался вкатиться в яндекс стажером, но как оказалось я слишком тупой для них
1240 1768643
>>68501
Ну тут бесспорно) для заказчика на джаве дороже выйдет написать, чем на пыхе
1241 1768644
>>68511

> > Переведи два слова: "бизнес" и "логика" на понятный тебе язык


> Бизнес, это когда Вася обкашливает вопросики с родственником по маминой линии. Логика - из А следует Б из Б следует С, значит, из А следует С.


Слушай, может все-таки формочки на js шлепать? С такими проблемами будет тяжело бэк писать
1242 1768646
>>68531

> Везде где смотрел, нужны на полный день люди. А мне нужно как-то обучение в вузе еще совмещать.


Работаю со 2-го курса. Нахуй тебе сидеть в универе каждый день по 3-4 пары? Ты в МГУ/Бауманке учишься, чтоб так дрочить на свой вузик? Всегда можно договориться с работодателем, чтоб отпустил на экзамен/зачет, либо взять на этот день больничный. В универ практически не ходил. Только чтоб сдать какие-то работы, на зачеты и экзамены. С таким подходом закончил бакалавриат, а затем и магу. Главное общаться со своей группой, чтоб быть в курсе событий
1243 1768665
>>68646
Тоже так планирую, к середине или концу 2 курса пойти на стажировку или работу. Проблемы только с хуевый английским, а он для стажёров нужен.
1244 1768701
>>68606
Спросить преподов. Спросить "центр занятости", который должен быть, по-идее.
Идти в mail и не выёбываться.
1245 1768713
Аноны, не пойму, я в винде хочу создать пакет в текущей директории, как мне его из соседних файлов вызывать?
1246 1768714
>>68713
вот есть у меня пакетная функция print в папке c:\code\print, как ее мне влключить в других файлах? Писать напрямую import c:\code\print;
или как?
1247 1768769
>>68714
У тебя пакеты начинаются с какой-то директории
package com.myprog.spring;
в данном случае с папки com. Дефолтный пакет не используй.
Ну и дальше ты указываешь через точку путь к папке класса, потом имя публичного класса.
Что значит пакетная функция, может, тебе в другой тред?
1248 1768823
Поясните за REST API.
Через фронт запрос с телом класса формирует JS, те, там надо описать точно такой же класс, как в Java, и такой же класс для ответа?
А если мы общаемся сугубо через бэкенд, можно импортить класс контроллера и пользоваться его методами, или надо тоже отправлять запросы?
1249 1768843
>>68713
Относительных импортов в джаве нет, всё идёт от корня. Считай, что названия пакетов через точку - это на уровне кода один идентификатор.
1250 1768856
>>68823
Не обязательно класс, изначально это тупо жсонка. Да и классы в жс - так, сахарок для объектов. И можно работать с объектом напрямую, почти как в джаве мапа с определёнными ключами.
1251 1768928
>>68646
У меня лабы по многим предметам, их нужно очно сдавать и защищать. Ну и физра еще в этом году будет, ее нельзя проебывать. Поэтому вообще никак не вариант полностью проебывать вуз.
1252 1769267
>>68928

> У меня лабы по многим предметам, их нужно очно сдавать и защищать. Ну и физра еще в этом году будет, ее нельзя проебывать. Поэтому вообще никак не вариант полностью проебывать вуз.


Я тебя, наверное, удивлю, но лабы и физра есть у любого студента вуза. Лабы, хуябы , курсачи можно сдать в конце семестра, либо вообще в следующем/через один. Физру можно купить за условный сертификат в спортмастер на косарь преподу. Пиздец, с таким подходом можно и до сдачи диплома сидеть тупить в универе у мамки на шее. А потом в армию еще сходить не забыть. Но вообще, поступай как знаешь. Я твоих способностей пиздеть, крутиться и договариваться с людьми не знаю, поэтому насоветую тебе тут сейчас на отчисление.
1253 1769288
>>69267
Я вот тоже довольно поздно (курсу к третьем) понял, всё, что ты сейчас пишешь.
Это же школьник вчерашний, он не понимает ещё, как вообще можно уроки прогулять и с преподом за бабло договориться.
Не дави на него так.
1254 1769527
Я не сомневаюсь что это уже миллион раз спрашивали, и даже выше в этом треде, но может кто посоветовать современную книгу по джаве? Три раза спрашивал, три раза скидывали книги 1997 года.
ОП - ХУЙ, НЕ ДОБАВИЛ FAQ В ШАПКУ
1255 1769574
Выбираю технологию программирования, думаю насчёт Java в первую очередь.
На старте 2 вышки айтишных (краснодипломных), опыт 1С Программистом 3 года, которая заебла, дорос до 100к+ ЗП даже в городе с 600к населения на Дальнем Востоке, но я рот ебал до конца жизни в этом болоте оставаться.

Есть финансовая подушка, которая позволит год не работать. Также много на C/C++ кодил (все 6 лет универа, дипломные проекты тоже на нём всё). Какие-то стартовые навыки по ООП тоже есть, книжки читал.

Буду перекатываться к Москве с финансовой подушкой, где есть вакансии на нормальные технологии программирования. Интересует бизнес-логика, разработка под мобилы неинтересна.
1. КАКОЙ уровень владения английским надо (B2 хватит ?)
2. КАКОЙ конкретной фреймворк надо изучать
3. ЕСТЬ ЛИ комплексные курсы по стеку технологий, который нужно знать jav'исту ? Без объяснения, что такое циклы, переменные, классы и т.д.
3. Как обстоит дела с языком запросов там. Я правильно понимаю, что есть какая-то ORM'ка ? И тогда какая.
1256 1769576
>>69574
Да
Спринг
Нет
Хибернейт/спринг дата жпа. Но будь готов, что большинство запросов придётся писать руками.
1257 1769577
>>69527
Это не Оп хуй, а ты настолько тупой, что не можешь перейти по ссылкам в ОП-посте и ознакомиться со всеми вопросами вкатышей. В том числе и про книги
image.png134 Кб, 224x224
1258 1769578
1259 1769579
>>69576
Зря все Спринг учат. Я вчера посмотрел, по нему только 1/3 вакансий.
1260 1769583
>>1769582 (OP) ПЕРЕКАТ
>>1769582 (OP) ПЕРЕКАТ
>>1769582 (OP) ПЕРЕКАТ
1261 1769592
>>69579
Нужно иметь в виду, что во многих вакансиях почти не расписывают стек, и "уверенное значение java" включает знание всего популярного стека, особенно если в такой вакансии ещё и опыт требуют. Да и андроидовских вакансий немало.
1262 1769614
>>69578
Я дюк юниверсити проходил - мне понравилось. Начал изучение джавы с написания дешифровщика по методу частотного анализа и написания цепей маркова. Сан диего какой то невнятный и устаревший с гвт и эклипсом - что делает его похожим на любой индусский курс. Рис не пробовал.
1263 1769929
>>69267

>Физру можно купить за условный сертификат в спортмастер на косарь преподу



Лабы и курсачи если и можно сдать в конце семестра, то с физрой у нас все строго и уже лет 15 как ничего не покупается, к большом у сожалению. И людей реально отчисляют из-за одной физры.
1264 1769932
>>69267

>с таким подходом можно и до сдачи диплома сидеть тупить в универе у мамки на шее


Кстати в топ вузах очень много кто так делает. Иначе вылетишь за через 1.5 наносекунды, если начнешь работать на 3 курсе.
1265 1769936
>>68646
Отучился в бауманке кстати в прошлом году на робототехника, отходил почти на все пары, диплом со средним баллом 4.5, ни разу не работал, с 3 курса просто с ноутом сидел на последних рядах и лениво ковырял пердун и курсачи, гордость не позволяла их купить за 5-6к оглядываясь назад, лучше бы я их купил, они сожрали месяца два моей жизни в часах. Денюжка была с различного рода шабашек на фрилансе, телеботы, боты для любимой игры, чтобы автоматизировать процесс гриндилова и всякие задачки долбоебам и т.п.

Щас я понял, что пердун говно и собираюсь ПЕРЕАБУЦЦА чтобы в офисе сидеть. Но фактического опыта-то у меня нет, интересно, смогу ли я найти стажировку на жабе\котлине и как это гуглить.
1266 1769940
>>69936
Кстати я тоже на РК учусь, на 2 курс вот перешел. Что посоветуешь делать?
Вот решил в жабу и алгоритмы понемногу вкатиться.
1267 1769961
>>69940
Кафедру скажи, я на РК9 был просто. С третьего курса там поездка на кабриолете вдоль берега моря под бризовым ветерком.
1268 1769964
>>69961
РК6
1269 1769973
>>69964
Ммм, халявная кафедра с айти уклоном. Лично видел, как самых конченных долбоебов вытягивали на тройку, а еще у вас нет Карпачева, который меня в академ отправил за незнание теоретической механики.

Я тебе мало чего скажу за нее, извини. Но общий посыл - на втором курсе сукаблядь не смей расслабляться, 90% отчислений происходят на 1-2 курсах, потому что уженешкольник забивает хер на учебу и затягивает все сроки, после чего умирает на преподе факере и берет академ.

А так в целом в даунке похуй на посещения, у меня на 4 курсе 80% потока не ходило на пары, ыыы
1270 1771236
Впервые в жизни прошёл iq-тест. До этого даже задачек ни разу не видел. Проходил сразу, без особых заморочек.
Вот такой результат получил на пикрил. Смогу ли я, в перспективе, составить конкуренцию гениальным синьорам из мехматов с их пятизнаками icq? Или лучше пойти красить кнопки в мобилки?
Алсо делитесь своими результатами.
iq.png256 Кб, 1496x1292
1271 1771238
Пикча отвалилась
спасибо абу
>>71236
1272 1771371
>>71236
>>71238
Тест проверяет твою способность решать простые задачки в короткие сроки.
А по поводу конкуренции - 99% времени ты будешь решать однотипные задачи, многократно решенные до тебя, зачастую не связанные с программированием
1273 1771444
>>71371

>Тест проверяет твою способность решать простые задачки в короткие сроки.


Кстати, я догадывался, что там учёт времени идёт, но не был уверен. Я нередко долго соображаю, хотя вроде почти всегда нахожу решение.

>А по поводу конкуренции - 99% времени ты будешь решать однотипные задачи, многократно решенные до тебя


Понял, спасибо за ответ. Просто мне всегда казалось, что в бэке много алгоритмов и мат.логики, поэтому боялся оказаться ситуации, когда начну и в какой-то момент уже не потяну.
1274 1771669
>>71444

>много алгоритмов и мат.логики


Этого нигде нет в большом количестве, забей.
Алгоритмы нужны только для того, чтобы на собеседованиях не обосраться жидко.
1275 1771744
>>71669

>Алгоритмы нужны только для того, чтобы на собеседованиях не обосраться жидко.


Возможно, ты прав, так как у меня нет практического опыта, ориентировался исключительно по требованиям в хороших вакансиях и необходимой теоретической базе.
Плюс те же конференции, типа джиконф и джокер посмотрел, где крутые спикеры выступают. Посмотрел, построение какой-нибудь отказоустойчивой, оптимизированной архитектуры веб-приложений, или работа какой-нибудь очереди я смотрел доклад о апач кафка выглядит довольно интересно для меня. Понимаю, что там люди с колоссальным опытом а не я - лох с дивана. Но все-равно смотрю, там, к примеру, какие-то мат.расчеты отказоустойчивости формулами из, видимо, тервера, которые я не очень понимаю. Вообще я не полный ноль в математике, более-менее в универе её тянул, но как-то не особо удовольствия доставляет. Поэтому был некий страх, что не осилю профессию на хорошем уровне.
1276 1772645
>>71744
Можешь вообще не переживать. математика даже в датасаенсе далеко не везде юзается, что там про бекенд говорить.

> мат.расчеты отказоустойчивости формулами


Этим почти никто не занимается, да и знают про это немногие. Да и даже если заниматься, но не заморачиваться, там расчётные формулы на уровне методичек для лаб по физике.
1277 1775454
Какое же говно этот ваш грейдл!

Что делает няшный мавен когда встречается с циклической зависимостью? Фейлит билд с сообщением об ошибке - разберитесь, потом компилировать будем.

Что делает блядский грейдл? Нихуя! Просто потом упадет с ошибкой компиляции - класс не найден. И ебись как хочешь, какого хера он не найден.
1278 1784571
Че с 23 тредом, мне выкидывает ссылку на это https://2ch.hk/pr/arch/2020-08-22/res/1769582.html (М) и 404 скрин
Тред утонул или удален.
Это копия, сохраненная 26 января 2021 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски