
Alexander
26.07.2017
11:15:51
Тут перевод статьи про синглтоны подъехал. Порадовада превьюха. Кому лень заходить то вот она.
https://m.habrahabr.ru/company/mailru/blog/334078/%5Bperevod%5D-singltony-i-obschie-ekzemplyary
Кстати в ней обсуждается то что синглтоны использовать никак нельзя

Google

Aler
26.07.2017
11:17:29

Alexander
26.07.2017
11:17:42
Но чет мне кажется это бред какой то

Aler
26.07.2017
11:18:13
синглтоны действильно плохая практика

Aleksandr
26.07.2017
11:18:28
иногда они как раз решают задачу очень элегантно и без костылей

Aler
26.07.2017
11:20:32
если это классическая реализация через статические поля, то это плохо всегда

Nikita
26.07.2017
11:21:24
но он работает в некоторых исключительных случаях, да :)

Aler
26.07.2017
11:22:30
но да, не только в блокчейне используется

Google

Aler
26.07.2017
11:26:26
синглтон просто наследник идей когда писали еще по адресам в память через вызовы инструкций процессоров
тогда приложения были проще и требования ниже
сейчас хорошее ПО требует тестов (на кону порой очень большие деньги), масштабируемости и очень понятной архитектуры, чтобы его можно было поддерживать и развивать
а сделать хорошую архитектуру нарушив основной принцип SRP уже не получится
Если вам нужен какой-то "главный" объект - дайте этот функционал просто входной точке, а "синглтоны" запрашивайте у нее. Это не так уж и сложно
в юнити очень много проблем из-за статических полей и синглтонов

Anastasia
26.07.2017
11:31:53
Господи постоянно восхищаюсь как Алер разбирается в таком количестве сложных штук

Nikita
26.07.2017
11:33:01
)))

Aler
26.07.2017
11:33:22
но это не сложная штука

Anastasia
26.07.2017
11:33:30
Для меня сложная!

Сергей
26.07.2017
11:33:33

Nikita
26.07.2017
11:34:16

Aler
26.07.2017
11:34:36
особенно его в синглтон пихать плохая идея
конфиг ну никак не должен управлять своим количеством в системе

Nikita
26.07.2017
11:35:08
?♂
динах пидрбля я фанатик пруфов не будет

Nikita
26.07.2017
11:35:29
хм
redux store?

Aler
26.07.2017
11:36:11
конфиг передается объекту, чтобы он мог настроить себя так как должен для системы. И системе может потребоваться объект с "неправильным" конфигом для определенного поведения
Синглтоном может быть только, то что изначально выше по уровню архитектуры, чем ваше приложение
например, поля и объекты ОС общие для экземпляров приложения

Google

Aler
26.07.2017
11:37:58
redux store?
я не знаю как он там по дефолту, но надеюсь не синглтон

Nikita
26.07.2017
11:38:17
ну вообще да, сторадж один на все модули

Aler
26.07.2017
11:38:21
так как если это так, то очень плохо. Получится, что нельзя запустить два реакт приложения в одном контексте

Nikita
26.07.2017
11:38:25
иначе он в принципе не будет работать

Aler
26.07.2017
11:38:46
нее, Никита, мы о разном

Nikita
26.07.2017
11:39:02
вообще можно больше одного конечно

Aler
26.07.2017
11:39:15
ну тогда это не синглтон в понимании паттерна

Nikita
26.07.2017
11:39:27
на каком-то уровне есть маунт, и там как раз создается сторадж один на все

Aler
26.07.2017
11:39:34
это просто экземпляр стора, что создан приложением и передается в каждый модуль
как раз вариант с входной точкой и получение\инъекцией от туда экземпляра
но если запустить параллельно (в одном контексте) еще приложение оно создаст свой стор

Илья
26.07.2017
11:43:36
Юзаю синглтон ток для логов

Илья
26.07.2017
11:45:11
Ибо он редко для чего еще подходит


Aler
26.07.2017
11:47:06
да, там заминка с оплатой
#[derive(exonum_record)]
#[service = "1"] // service ID
#[id = "1"] // record ID
struct __Wallet {
#[key] // mark field as primary key (will be index of data)
#[size = "32"] // set size in db
pub_key: &'static PublicKey,
#[size = "8"]
name: &'static str,
#[size = "8"]
#[set] // expose setter method `wallet.set_balance(1000u64)`
balance: u64,
}
// Implementation of custom Wallet record methods
impl Wallet {
pub fn increase(&mut self, amount: u64) {
let balance = self.balance() + amount;
// Usage of auto-generated setter method
self.set_balance(balance);
}
pub fn decrease(&mut self, amount: u64) {
let balance = self.balance() - amount;
self.set_balance(balance);
}
}
#[derive(exonum_message)]
#[service="1"]
#[id="2"]
struct __Transfer {
#[key]
#[size = "32"]
from: &'static PublicKey,
#[size = "32"]
to: &'static PublicKey,
#[size = "8"]
amount: u64,
#[size = "8"]
seed: u64
}

Aleksandr
26.07.2017
11:47:46

Илья
26.07.2017
11:47:51
Скинь хотя бы на codeine.con
Ideone.com

Aler
26.07.2017
11:48:02
делаю на расте штуку сейчас) Это бутстрап для разворачивания данных для блокчейна

Google

Илья
26.07.2017
11:48:39

Aler
26.07.2017
11:49:18
https://pastebin.com/9iH8BiNa
прикольна, но иногда мы очень весело общаемся с компилятором

Илья
26.07.2017
11:50:03
мне не привычно было после java на нем писать
(((

Aleksandr
26.07.2017
11:52:44
@alerdenisov стрим?

Admin
ERROR: S client not available

Aler
26.07.2017
11:52:57
ну хз)
а можно тебе в личку напишу @jet4fire ?

Aleksandr
26.07.2017
11:53:24

Nikita
26.07.2017
11:53:39
жесткач
регулярки это круто, конечно
но я даже представить себе не могу
насколько сильно в заблуждение может вот это привести людей
file.replace(/(.+-)(.)(.json)/g, '$10$2$3');

johnny
26.07.2017
11:55:21

Anastasia
26.07.2017
12:08:41
Так
https://vc.ru/p/from-0-experience-to-job

Aler
26.07.2017
12:16:50

Nikita
26.07.2017
12:24:28
http://www.rbc.ru/society/26/07/2017/597877fe9a7947cd81b6a2b2?from=main

Google

Nikita
26.07.2017
12:24:37
btc-e, походу, не поднимется :)
черт
саблайм, говорите, юзать
ага
подвисло все

Nikita
26.07.2017
12:35:08
ну да
не вим
это из-за разметки видимо

Георгий
26.07.2017
13:08:40

Nikita
26.07.2017
13:18:08

Sergey
26.07.2017
13:34:33
хорошо иметь свобю биржу, можно выводить с нее бабосы сколько хочешь, а когда народ массово побежит на вывод закрыть к хуйам

Nikita
26.07.2017
13:36:28
MtGox так и сделали :)
посоны, такой вопрос
предположим, курс BTC падает ваще быстрее скорости света
мой бот это увидел и перестал торговать
как думаете, как определить, что рынок уже вышел из паники и снова может начать расти?
по размеру роста битка?