
Pavel ?
26.06.2018
17:46:35
@fundamentalparticle
Антон достовляет)))))

Владислав
26.06.2018
17:49:39
Друзья, снова я с вопросом по mongo async driver
Итак, есть проблема
Есть коллекция счетов
Есть операции пополнения и снятия средств
Причем могут выполняться с кучи разных потоков, могут обновлять один счёт, а могут разные
Так вот
Возникает проблема с валидностью данных при снятии средств. Для того, чтобы провести снятие, я должен узнать, что я снимаю не больше, чем осталось (не выпало за 0). Но при параллельном выполнении этой операции возникает проблема, что два потока одновременно получают одно и то же значение счёта и снятие проходит не верно(было 10 и в одну секунду приходит два снятия по 10, оба потока видят баланс - 10 и начниюат снимать, а остаётся -10)
Обычная блокировка потока здесь не подходит, ТК это сильная просадка по производительности (люди, работающие с другими счетами не смогут работать , ТК один счёт заблокирует поток)
Как поступить, кто что может посоветовать ?

Anton
26.06.2018
17:52:52

Google

Anton
26.06.2018
17:53:18

Митко Соловец?
26.06.2018
17:54:03
это же поиск везде
@fundamentalparticle как генерилку жпа классов найти?

Anton
26.06.2018
17:56:40
Я на самом деле без понятия. Google it!

Митко Соловец?
26.06.2018
17:57:41
гугл ит на старые доки указывает

Pavel ?
26.06.2018
17:58:24
@fundamentalparticle ну ты там почитай что наверху)) нам нужен персистен виндов без хибер конфига)

Sergey
26.06.2018
17:58:30

Митко Соловец?
26.06.2018
17:58:50

Sergey
26.06.2018
17:58:59
Это скрипт
Так называется

Pavel ?
26.06.2018
17:59:02
чтоб автоматом из спринг контекста поднималось

Google

Sergey
26.06.2018
17:59:15
А не поджо на груви будет

Pavel ?
26.06.2018
17:59:31
ну еще массажистки тоже нужны
ну и vip )))

Anton
26.06.2018
17:59:54

Pavel ?
26.06.2018
18:00:08

Igor
26.06.2018
18:00:11

Pavel
26.06.2018
18:00:11

Митко Соловец?
26.06.2018
18:01:07
без всего

Oleg
26.06.2018
18:08:06

Митко Соловец?
26.06.2018
18:09:15
ну и публиковать мы его конечно не будем

Pavel ?
26.06.2018
18:09:48
я вангую что аргентина выиграет

Dmitry
26.06.2018
18:13:33

Pavel ?
26.06.2018
18:14:30

Vik
26.06.2018
18:26:27
Кстати народ, помогите @olegchir новостями
Если годнота, то он вас в дайджесте упомянит

Igor
26.06.2018
18:30:39
А вы помогите своими контрибуциями
@olegchir Могу помочь только источником новостей по F#.
Есть готовый F# Weekly от Сергея Тихонова (который был на последнем dotnext)
https://sergeytihon.com/category/f-weekly/


Владислав
26.06.2018
19:09:54
Друзья, снова я с вопросом по mongo async driver
Итак, есть проблема
Есть коллекция счетов
Есть операции пополнения и снятия средств
Причем могут выполняться с кучи разных потоков, могут обновлять один счёт, а могут разные
Так вот
Возникает проблема с валидностью данных при снятии средств. Для того, чтобы провести снятие, я должен узнать, что я снимаю не больше, чем осталось (не выпало за 0). Но при параллельном выполнении этой операции возникает проблема, что два потока одновременно получают одно и то же значение счёта и снятие проходит не верно(было 10 и в одну секунду приходит два снятия по 10, оба потока видят баланс - 10 и начниюат снимать, а остаётся -10)
Обычная блокировка потока здесь не подходит, ТК это сильная просадка по производительности (люди, работающие с другими счетами не смогут работать , ТК один счёт заблокирует поток)
Как поступить, кто что может посоветовать ?


Artjom
26.06.2018
19:18:19
нужно еще раз запостить - тогда обязательно кто-нибудь ответит

Google

Nikolay
26.06.2018
19:32:04
Господа, есть классы А и Б, А юзает Б, А и Б юзают один и тот же енам, который в Б - член класса, в А - участвует в свич. До этого писал на С, где данный енам я бы выкинул в хидер и дёргал бы его для двух классов. Как это композиционно лучше сделать по java-way? Сделать класс Support и юзать его в обеих классах имхо шлак

Владислав
26.06.2018
19:33:22

Vladimir
26.06.2018
19:33:33
сделать енум публичным и обращаться через B.Enum.VALUE
(если под членом класса подразумевается вложенный класс)


Alexey
26.06.2018
19:44:56
Друзья, снова я с вопросом по mongo async driver
Итак, есть проблема
Есть коллекция счетов
Есть операции пополнения и снятия средств
Причем могут выполняться с кучи разных потоков, могут обновлять один счёт, а могут разные
Так вот
Возникает проблема с валидностью данных при снятии средств. Для того, чтобы провести снятие, я должен узнать, что я снимаю не больше, чем осталось (не выпало за 0). Но при параллельном выполнении этой операции возникает проблема, что два потока одновременно получают одно и то же значение счёта и снятие проходит не верно(было 10 и в одну секунду приходит два снятия по 10, оба потока видят баланс - 10 и начниюат снимать, а остаётся -10)
Обычная блокировка потока здесь не подходит, ТК это сильная просадка по производительности (люди, работающие с другими счетами не смогут работать , ТК один счёт заблокирует поток)
Как поступить, кто что может посоветовать ?
Оптимистик локинг неа ?

Владислав
26.06.2018
19:45:11

Nikolay
26.06.2018
19:52:01

Vladimir
26.06.2018
19:55:24

Nikolay
26.06.2018
19:57:28
Полиморфизм не зайдет. Про p f s константы да, понятно, но нормально ли объявлять их вне класса?

Vladimir
26.06.2018
19:58:02
отдельные классы для констант - так себе практика

Nikolay
26.06.2018
19:59:27
В смысле без класса. Просто константа

Nikolay
26.06.2018
19:59:42

Vladimir
26.06.2018
20:00:42
константа - это в конечном итоге всё равно поле

Nikolay
26.06.2018
20:05:28
Или имелось в виду,что вне класса не финализируется?

Ilusha [←↓ ↑→]
26.06.2018
20:07:46
а что тут противозаконного?

Nikolay
26.06.2018
20:09:12

Artjom
26.06.2018
20:09:42
интересная конвенция наименования переменных

Google

Artjom
26.06.2018
20:09:51
почему m впереди ?

Ilusha [←↓ ↑→]
26.06.2018
20:10:42

Vladimir
26.06.2018
20:12:27
Енам состояния игры я бы вынес либо в отдельный класс (GameState), либо в Game.State. В классе названием GameState дополнительный енум с таким же названием - это уже перебор. Этот класс, содержащий переменные состояния игры, я бы назвал GameController, GameProcess или по имени игры, если это имплементаци интерфейса Game. Сваливать все в одно кучу - это плохая идея. В абстрактном классе Game можно было бы объявить Private GameState currentState = GameState.STARTING. И да, в енамах принято использовать верхний регистр

Nikolay
26.06.2018
20:13:27
Андроидная) m - непубличное нестатичное поле, s - статик. Мне не особо нравится, я б максимум первую букву типа выносил)

Admin
ERROR: S client not available

Ilusha [←↓ ↑→]
26.06.2018
20:14:21

Nikolay
26.06.2018
20:14:53

Vladislav
26.06.2018
20:16:26
А-а-а-а, фото-скриншоты

Vyacheslav
26.06.2018
20:16:35
Лайфхак - если юзаешь десятую винду, скрины можно делать через Shift+Win+S. Он копируется в буфер, ты его можешь вставлять куда угодно

Nikolay
26.06.2018
20:17:56

Vyacheslav
26.06.2018
20:18:49

Vladislav
26.06.2018
20:20:22
PrintScreen, кстати, почти на всех ОС либо открывает спец тулу, либо копирует картинку в буффер обмена. не то чтобы долго обрабатывать. Много где всякие Яндекс.Диски и подобные ставят свои перехватчики. На маке - Cmd+Shift+3/4

Nikolay
26.06.2018
20:22:21
Постараюсь больше не сливать такое)

Владислав
26.06.2018
20:22:31
там же так же и получится, что этот идентификатор будет одинаков для двух потоков
и всё

Tolegen
26.06.2018
20:24:44
Просто блокировать именно отдельную запись id, а не всю таблицу

Владислав
26.06.2018
20:25:42
я про это и говорю

Zhanat
26.06.2018
20:33:33
Добрый вечер господа.
Столкнулся с проблемой, быть может кто сведущий подскажет как её решить.
Приложение А через Dexclassloader грузит приложение Б. В манифесте А объявлен Accessibility Service и пустое тело класса. В приложении Б тело класса этого сервиса с фунционалом.
Суть проблемы. При первичном включении сервиса в настройках события обрабатывает правильный класс приложения Б. Но при убийстве приложения или перезагрузке девайса срабатывает события в приложении А. Причем onCreate этого класса срабатывает раньше бродкастресивера boot_completed. И в дальнейшем невозможно заменить класс accessibility service.
Вопрос: Как можно скормить системе правильный класс accessibility service после перезагрузки или убийства приложения?

Google

Александр
26.06.2018
20:34:43
Все у вас не как у людей, даже название полей...
sSingleton ?
mModel, от создателей IInterface ?

Nikolay
26.06.2018
20:36:39

Александр
26.06.2018
20:36:51
У андроид девелопера

Tolegen
26.06.2018
20:38:05
я про это и говорю
В монго на уровне базы вроде не получится залочиться. Нужно на уровне приложения делать.

Nikolay
26.06.2018
20:38:06
Я не из них пока) Просто первый проект по уму, кодсиайлу и красоте, а дальше уже буду думать,удобно это или нет)

Александр
26.06.2018
20:38:57
Ну одно я понял точно, код стайл андроида для меня не красивый :)

Владислав
26.06.2018
20:39:31

Александр
26.06.2018
20:39:44
Ага

Владислав
26.06.2018
20:40:46
Ага
вообще, на данный момент так уже не принято делать
уже в течении года, если не больше от этого откзаываются
в основном, это люди по старым гайдам учатся оттуда и берут

Александр
26.06.2018
20:41:47
Ужас, вот поэтому я и обхожу андроид стороной, то джава не джава, то код стайл стремный, то андроид студия за идеей остаёт :)

Alexander
26.06.2018
21:55:34
Вот скажите мне, что я делаю не так, прилепил во всем приложении спинговый кэш, через аннотации же конечно, еще прилепил кучу всего, на эвиктинг этого кэша и вот получается что код получился настолько говно, что я не вижу причин его не выбросить и просто заиспользовать работу с кэшом вручную

Georgy
26.06.2018
22:24:21
Кэш через аоп вроде нормальный подход