
Alex
29.08.2016
21:46:21
как можно передавать айди, которого нет в бд?
теоретически где-то проебать session.save(pojик)
теоретически передать вместо одного id мифический другой ( many bar to one foo, по bar получать foo и вместо fooid отдать barid)
иногда ты можешь получать айди снаружи из чужого треда а другой чужой тред уже его удалил
но это примеры из серии "надо больше спать"

abc
30.08.2016
07:39:56
привет всем. повторяю тут знания по Java. скажите ведь если я создам переменную так Integer x = new Integer(100); то она уже будет храниться не в стеке а в куче ? или все равно в стэке ?

guga
30.08.2016
07:41:26
Именно этот инт будет в кэше интов. Но он всё равно в хипе.

Митко Соловец?
30.08.2016
08:14:23

Google

Митко Соловец?
30.08.2016
08:14:41
а что касается тредов, то есть такая штука, как блокировки, поэтому тоже мимо

sss3 ?
30.08.2016
08:16:01
Два пользователя одновременно работают, один удалил запись, второй в этот момент попытался её открыть
Как ты это будешь разруливать блокировками
Single user?)

Берял
30.08.2016
08:16:42
на таблице, на строчке (на записи)

Митко Соловец?
30.08.2016
08:17:02
и снова берял снял с языка
твой кейс на уровне базы разруливается

sss3 ?
30.08.2016
08:17:21
Тут разговор про то, откуда может взяться ид которого нет в БД
Я не про персистетность данных сказал
А про невалилный ид

Митко Соловец?
30.08.2016
08:17:56
по поводу айди и блокировать, я имел в виду синхронизированный доступ
чтобы не возникла ситуация, когда обращаешься к тому, что снесли

Google

sss3 ?
30.08.2016
08:18:18
Ну в любом случае, ид то не корректный уже

Timur
30.08.2016
08:18:41
Ну, это как-то не особо user-friendly блокировать запись, а тем более таблицу на время работы с ней

Митко Соловец?
30.08.2016
08:18:54
но ты согласен, что такие кейсы сразу рассматривают, как проблемные и их решают?
точнее предотвращают

sss3 ?
30.08.2016
08:19:36
Нет, это не проблема

Митко Соловец?
30.08.2016
08:19:38
неблокирующее только селекты

sss3 ?
30.08.2016
08:19:58
Типичный кейс в многопользовательском приложение
Так там про селект и разговор?)

Митко Соловец?
30.08.2016
08:20:33
что-то свое городить не имеет смысла

sss3 ?
30.08.2016
08:20:58
Ну я не говорю что надо что то городить

Митко Соловец?
30.08.2016
08:21:14
так уже сгородили???

V
30.08.2016
08:50:29
http://www.linux.org.ru/news/java/12829927

?Alex
30.08.2016
08:52:35
Punk,l,?
., ;

James Tiberius Kirk ?
30.08.2016
18:48:23
меня тимлид выебал за optional.get() в коде
правильно сделал?
особенно интересно мнение товарища @guga4ka

Виталий
30.08.2016
18:56:51
http://royvanrijn.com/blog/2016/04/deprecating-optional-get/

James Tiberius Kirk ?
30.08.2016
19:17:52
это я читал, и тимлиду показывал, причина частично в этом

Google

Andrey
30.08.2016
19:19:05

James Tiberius Kirk ?
30.08.2016
19:19:23
А это я хочу гугочку потеребить, мне кажется он подскажет
уверен, что он компетентен в этом случае

guga
30.08.2016
21:10:50
Все просто. Для чего бы юзал Optional? Правильно, ты заранее подумал о том, что у тебя операция может не возвращать значение и предупредил пользователя апи, мол смотрит, чувак, тут может не быть данных, будь добрый, помни о этом. А что делает Optional.get когда твой Optional none? Бросает эксепшен, насколько я помню джаву. Ты обрабатываешь этот случай?
Если в двух словах, то это не канонничный способ работы с монадой Optional. Канонничных способов тут несколько. Если тебе нужно получить значение, которое лежит внутри, используй orElse и явно задай дефолтное значение.
Или если тебе нужно отображение данных на функцию, используй map
Если у тебя есть вложенность тогда юзай flatten а потом map

James Tiberius Kirk ?
30.08.2016
21:16:47
Во, Гуга молодца, слово в слово тимлида повторил

guga
30.08.2016
21:17:20

James Tiberius Kirk ?
30.08.2016
21:18:21
просто что ты, что он — скалоебы, а оно все оттуда идет

sss3 ?
31.08.2016
05:24:15
Разве гет дает ошибку на пустое значение?
Optional.of() дает

sss3 ?
31.08.2016
05:24:37
А не гет

James Tiberius Kirk ?
31.08.2016
05:52:20
гет другой эксепшн кидает
NoSuchElementException

Артем
31.08.2016
07:19:35
https://habrahabr.ru/company/jugru/blog/307180/

-
31.08.2016
07:59:36
Всем привет.
Сегодня столкнулся с таким багом:
public User(String username, String country) {...}
// ...
User u = new User(country, name); // аргументы перепутаны
Его можно было бы избежать, если бы у имён пользователей и стран был свой класс, т.е.:
public User(Username name, Country country) {...}
Но стоит ли так делать и в каких случаях?

Alex
31.08.2016
08:04:48
u.setCountry()

sss3 ?
31.08.2016
08:06:26

-
31.08.2016
08:06:40
u.setCountry()
А что это даст? Вероятность той же самой ошибки всё равно остаётся:
u.setCountry(name);
u.setName(country);

Google

Alex
31.08.2016
08:07:39
Нужно быть неадекватным, чтобы напечатать сеткантри(юзернейм)

guga
31.08.2016
08:09:05

Artem
31.08.2016
08:09:55

Corben
31.08.2016
08:10:26

-
31.08.2016
08:12:03
Нет, вопрос не только про конструктор, а вообще про вызов функции с параметрами с одинаковыми типами:
void doSomething(String name, String country, String email)
Вот в Go можно так без оверхеда:
type Username string
В Scala, насколько я понял, есть такая же возможность.

Admin
ERROR: S client not available

guga
31.08.2016
08:14:35
дефолтных значений у параметров тоже нету.


-
31.08.2016
08:40:32
Именованные параметры и дефолтные значения - не то что я ищу. Потому что они не решают проблему:
fun doStuff(name: String, country String) {...}
doStuff(name = country, country = name)
Опечататься становится труднее, но на это выражение компилятор ругаться не будет.
Вот на примере Go (извините, что не на примере Scala - не разбираюсь в ней). Выражения
type Username string
type Country string
объявляют новые типы, который точно такие же как строка, но компилятор будет ругаться, если их спутать между собой или строкой. Код для наглядности: https://play.golang.org/p/j9KLUNqKnz
Я понял, что прямо так в Java нельзя. Но создавать класс для каждого типа параметра совсем не принято? Из-за оверхеда или по другой причине?

James Tiberius Kirk ?
31.08.2016
08:40:34
ебаный ждбстемплейт

Митко Соловец?
31.08.2016
08:40:52

James Tiberius Kirk ?
31.08.2016
08:40:55
речь о ждбс темплейте с неймед параметрами

Митко Соловец?
31.08.2016
08:41:42
ЛОЛ

James Tiberius Kirk ?
31.08.2016
08:41:54
jdbcTemplate.update(SQL_STRING, ImmutableMap.of());
вот так вот заебца

Митко Соловец?
31.08.2016
08:42:36
опять ты не хочешь гуглить?
namedParameterJdbcTemplate.getJdbcOperations().execute()

Google

guga
31.08.2016
08:43:27
Именованные параметры и дефолтные значения - не то что я ищу. Потому что они не решают проблему:
fun doStuff(name: String, country String) {...}
doStuff(name = country, country = name)
Опечататься становится труднее, но на это выражение компилятор ругаться не будет.
Вот на примере Go (извините, что не на примере Scala - не разбираюсь в ней). Выражения
type Username string
type Country string
объявляют новые типы, который точно такие же как строка, но компилятор будет ругаться, если их спутать между собой или строкой. Код для наглядности: https://play.golang.org/p/j9KLUNqKnz
Я понял, что прямо так в Java нельзя. Но создавать класс для каждого типа параметра совсем не принято? Из-за оверхеда или по другой причине?
Если тебе нужна проверка компилятором, тогда да, заводить новый тип на каждый параметр. Но мне кажется, это не верный путь, у нас так не принято.

James Tiberius Kirk ?
31.08.2016
08:43:32
развве не ебаный метод?

Митко Соловец?
31.08.2016
08:44:55
http://forum.spring.io/forum/spring-projects/data/21714-using-namedparameterjdbctemplate-with-no-params
подтверждение моих слов

James Tiberius Kirk ?
31.08.2016
08:45:27
спасибо, но такой способ конечно немного уебанский
хоть и работает

Митко Соловец?
31.08.2016
08:45:55
норм ты ща разрабов спринга обоссал
ну да ладно

guga
31.08.2016
08:49:14

Митко Соловец?
31.08.2016
08:50:08
как вы так код вставляете?

guga
31.08.2016
08:50:08
Но так никто не делает, всё стараются закрыть поля и сделать их приватными, сделать один консткрутор без аргументо и сделать getter & setter

sss3 ?
31.08.2016
08:51:32
вот так

Yan?
31.08.2016
08:51:32
``` ```

Митко Соловец?
31.08.2016
08:51:57
` `
hjhj
а почему красного цвета шрифт
?

-
31.08.2016
08:52:28


guga
31.08.2016
08:53:41
потому что полный код будет пиглядет не читаемо.
public class Temp {
public static void main(String[] args) {
Name name = new Name();
name.setName("name");
Country country = new Country();
country.setCountry("country");
User user = new User();
user.setName(name);
user.setCountry(country);
}
}
class Name {
private String name;
public Name() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Country {
private String country;
public Country() {
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
}
class User {
private Name name;
private Country country;
public User() {
}
public Name getName() {
return name;
}
public void setName(Name name) {
this.name = name;
}
public Country getCountry() {
return country;
}
public void setCountry(Country country) {
this.country = country;
}
}