
Igor
20.07.2017
12:07:52
Куча зависимостей, совершенно разного уровня это не нормально (если это правда не модуль DI)

Anton
20.07.2017
12:13:30

Sergey
20.07.2017
12:16:03

Victor
20.07.2017
12:18:55
Кстати, в прошлом году кто-то тут проводил что-то типа конкурса, где нужно было создать class как можно меньшего размера. Кто-нибудь помнит? Где-то есть результаты?

Google

guga
20.07.2017
12:23:09

Ruslan
20.07.2017
12:31:39
Нет. Вот кто нибудь бы напомнил
В каком то докладе шипилева кажись про это было
То что они вроде как классы, но немного отличаются от обычных классов
Кстати, вот про статик
Non-capturing lambdas are simply desugared into a static method having exactly the same signature of the lambda expression and declared inside the same class where the lambda expression is used.

Kirill
20.07.2017
12:58:47
вроде ZT и проводили

Victor
20.07.2017
13:08:48
Да, точно они. https://zeroturnaround.com/rebellabs/the-smallest-java-class-possible/
Но итогов не нашел.


Alexander
20.07.2017
13:53:49
Ребята, есть вопрос. Допустим, я использую JPA (через Hibernate). У меня есть BalanceRepository extends JpaRepository. Допустим, пользователь пополнил счет и я хочу обновить его баланс, зачислив туда деньги. Я получаю объект Balance через findOne(id), затем изменяю его состояние: balance.setMoney(balance.getMoney() + 777) и сохраняю его через save(balance). А теперь вопрос: будет ли открыта транзакция при вызове findOne()?
Ведь у меня есть метод BalanceRepository.withdraw(amount), который помечен Query и Modifying и он делает update, который вычитает указанную сумму денег у указанного id. Что будет, если между findOne и save прозойдет изменение счета пользователя из-за withdraw, вызванного кем-то другим, например?
А еще интереснее, если у меня где-то есть CustomBalanceRepository, который работает с таблицей балансов через старый-добрый JdbcTemplate, изменяя ее состояние голыми sql-запросами…

Митко Соловец?
20.07.2017
14:18:45

Google

Alexander
20.07.2017
14:20:06
Да, использую

Митко Соловец?
20.07.2017
14:21:12
если не изменяет память, все её методы обернуты в @Transactional
в вашем случае, операций несколько, поэтому отдеальный метод, где вызывается findOne и save, надо пометить @Transactional

Alexander
20.07.2017
14:22:38
Да, именно так и делаю. Спасибо!

Vlad
20.07.2017
14:24:11
А править данные через sql, если пользуешь jpa с l2cache - плохая идея.

Alexander
20.07.2017
14:24:43
А по-дефолту он включен?
Ага, нашел, что не включен.

Azamat
20.07.2017
14:33:50
Ребят, кто делает code review, на предмет чего вы его делаете? Какие вещи должен посмотреть reviewer?

Denis
20.07.2017
14:33:59
Здравствуйте.
Нужна консультация по вопросу многопоточности.
Сделал тестовое задание для простого управления банковскими счетами. В ответ получил отказ ввиду того что не была учтены работа в многопоточном режиме. Пожалуйста, укажите на проблемный участок. https://github.com/chipnesh/AccountOperations
Вроде как проблему можно решить с помощью optimistic блокировкой hibernate. А для этого нужно добавить поле с версией, верно?

Oleksandr
20.07.2017
14:38:24

Евгений
20.07.2017
14:42:44

Azamat
20.07.2017
14:43:34
@dveim, @e_fedorov, спасибо! а еще может какие варианты есть у коллег?

Евгений
20.07.2017
14:44:53
я думаю, к тому моменту, когда тебя назначат ревьювером у тебя должно сформироваться четкое представление о том, какой код плохой а какой хороший

Maxim
20.07.2017
14:47:18

Igorek
20.07.2017
14:52:55

Евгений
20.07.2017
14:54:31
что хаха
нечего кого попало ревьюверами делать

Vlad
20.07.2017
14:56:32
Код должен быть - простым и понятным всем членам команды. Ревью в этом помогает. То что было очевидно автору - может оказаться не очевидным ревьюеру.

Igorek
20.07.2017
14:57:07
Имхо у ревью есть ещё одно важное свойство - чтоб как можно больше людей были в курсе про код друг друга. Чтобы в проекте небыло ситуации когда открываешь файли и такой "матерь божья стоило отвернутся они уже наговнокодили!"

Google

Igorek
20.07.2017
14:59:23
И нормально чтоб джун поревьювил код сениора

Mikhail
20.07.2017
15:04:34

Azamat
20.07.2017
15:06:58

guga
20.07.2017
15:10:12

Azamat
20.07.2017
15:59:11
какой есть инструмент для InteliJ Idea для автоматической проверки code style? на сервере крутится, но хотим, чтобы как на reshaper-e для .Net была подсветка проблемного фрагмента кода и тд.

guga
20.07.2017
16:00:02

KrivdaTheTriewe
20.07.2017
16:00:04

Azamat
20.07.2017
16:00:13

guga
20.07.2017
16:00:51
но это не то что бы код стайл, скорее более мощный статичиский анализатор кода, чем в idea

Azamat
20.07.2017
16:01:33
ну да, а надо его дополнить кодстайлом))

Cargeh
20.07.2017
16:12:08

Vitalii
20.07.2017
16:12:31
А почему на английском? Причем кривом
Вся суть наших сообществ.
Либо говорить, мол, фууу, чувак, научись говорить по-русски нормально, либо фуууу, чувак, чё ты тут со своим английским припёрся. ?

Cargeh
20.07.2017
16:13:34
не хватает на code style
Задаете нужный паттерн (как у вас принято, там все настраивается), и делаете reformat code, rearrange code, optimize imports, cleanup. Все через Intellij IDEA

Azamat
20.07.2017
16:14:19

Cargeh
20.07.2017
16:18:06
куда копать?))
settings -> Code style -> Java
там в редакторе задаете нужный вам стиль кода (на примере), там также вкладок и кастомных настроек херова туча)
Для reformat code, rearrange code, impomize imports и cleanup code - должны быть хоткеи. Единственно что не знаю, как весь проект сразу порефактирить, но в рамках одного класса - собственно, нажатием хоткеев
Но весь проект разом тоже должна быть возможность

Евгений
20.07.2017
16:21:51

Anton
20.07.2017
16:25:22

Google

Mikhail
20.07.2017
16:45:29
В последнем разборе поминался какой-то классический учебник по конкарренси

Admin
ERROR: S client not available

Mikhail
20.07.2017
16:45:47
А шо это такое? Как он точно зовётся?

Евгений
20.07.2017
16:48:06
книжка с поездами

Aleksander
20.07.2017
16:48:09
Concurrency in practice ?:)
От Браина Гоеца?

Mikhail
20.07.2017
16:51:02
От Браина Гоеца?
Эту знаю, но вроде там других авторов называли, счас не могу переслушать

Aleksander
20.07.2017
16:52:46

Mikhail
20.07.2017
16:53:15
Да
Это те авторы
И что, это прям основа основ?

^.^
20.07.2017
16:53:35
Извеняюсь за свой сверхнтелектуальный вопрос, но зачем первым параметром в Intent() передаётся ссылка на текущую активность?

Mikhail
20.07.2017
16:53:44
И я дурак, если не читал её?)

Aleksander
20.07.2017
16:53:56

Mikhail
20.07.2017
16:54:39
Начнём с поездов

Aleksander
20.07.2017
16:55:19

Mikhail
20.07.2017
16:55:35
В пдф у меня тоже все есть

Google

Mikhail
20.07.2017
16:56:00
У меня ваще личная проблема - не могу читать книги по программированию
И никогда не мог
Статьи + конференции +ютуб записи их же +сам ковыряю
Немного сломал тенденцию, когда активно готовился к интервью, упорядочил знания Хорстманном
И только %(

Aleksander
20.07.2017
16:57:50

Kirill
20.07.2017
16:59:44
Всем привет, хочу начать программировать на Java. До этого был опыт с Паскалем. С чего можно начать изучение?

Aleksander
20.07.2017
17:00:43

Kirill
20.07.2017
17:00:59
Попутал ?

Mikhail
20.07.2017
17:01:27