@jvmchat

Страница 535 из 2890
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
Именно этот инт будет в кэше интов. Но он всё равно в хипе.

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
но ты согласен, что такие кейсы сразу рассматривают, как проблемные и их решают?

точнее предотвращают

Ну, это как-то не особо user-friendly блокировать запись, а тем более таблицу на время работы с ней
это вообще по умолчанию в бд, по крайней мере так у меня было с ораклом и постгресом

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
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()

-
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
-
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
Нет, вопрос не только про конструктор, а вообще про вызов функции с параметрами с одинаковыми типами: void doSomething(String name, String country, String email)
https://kotlinlang.org/docs/reference/functions.html#named-arguments http://docs.scala-lang.org/tutorials/tour/named-parameters.html В груви такого нету, как и в джаве. Если тебе так уж это нужно, юзай билдеры http://rwhansen.blogspot.com/2007/07/theres-builder-pattern-that-joshua.html

дефолтных значений у параметров тоже нету.

-
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
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
Если тебе нужна проверка компилятором, тогда да, заводить новый тип на каждый параметр. Но мне кажется, это не верный путь, у нас так не принято.
Большого оверхеда не будет, но пользоваться твои апи будет очень не удобно, что бы на джаве мимально провернуть это, нужно сделать так. public class Temp { public static void main(String[] args) { new User(new Name("name"), new Country("country")); } } class Name{ final String name; public Name(String name) { this.name = name; } } class Country{ final String country; public Country(String country) { this.country = country; } } class User{ final Name name; final Country country; public User(Name name, Country country) { this.name = name; this.country = country; } }

Митко Соловец?
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
Но так никто не делает, всё стараются закрыть поля и сделать их приватными, сделать один консткрутор без аргументо и сделать getter & setter
Это в случае конструктора. А в случае функции с большим количеством переменных одинаково типа? Для каждой такой функции заводить свой класс с нужными полями?

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; } }

Страница 535 из 2890