
dmks
28.12.2016
12:41:44
или sql over smb для самых маленьких

Zart
28.12.2016
12:50:34

Igor
28.12.2016
12:50:41
нет!
ни разу!
но могу представить, через какую жопу это работает в никсах %)

Google

Alex Milushev
28.12.2016
12:51:02
и еще не просто керберосом, а с доверенными доменами!

Zart
28.12.2016
12:51:10
отлично работает в никсах

Igor
28.12.2016
12:51:20
ну чё ты начинаешь :(

Alex Milushev
28.12.2016
12:51:21

Igor
28.12.2016
12:51:31
ну ладно :(

Zart
28.12.2016
12:51:35
из коробки у меня даже солярка заводилась
мит керберос - овер 10 лет, полет нормальный

Alex Milushev
28.12.2016
14:52:46
хм, есть вопрос, для конфигурации лучше использовать глобальный объект или все таки таскать ее как параметр для конструкторов/функций?

Eugine
28.12.2016
14:53:12
таскать или не таскать - вот в чем вопрос

Alex Milushev
28.12.2016
14:53:16
да

Eugine
28.12.2016
14:53:22
если у тебя есть приложение - то храни в нем
объект-приложение

Alex Milushev
28.12.2016
14:53:33
или иметь глобальный объект и дергать его из каждого модуля

Google

Alex Milushev
28.12.2016
14:53:50

Eugine
28.12.2016
14:54:34
куча всякого. инициализируй конфигурацией
храни внутри

Alex Milushev
28.12.2016
14:57:22
тогда попробую так
application —> abstraction —> set of api connectors
так вот конфигурацию Я в основном использую на уровне api клиентов

ultranoise ?
28.12.2016
14:57:43

Alex Milushev
28.12.2016
14:58:14
и вот промежуточная абстракция с ней напрямую не работает — только передает в клиенты
и вот тут Я в грусти, можно конечно выкинуть промежуточную абстракцию — но получится дикий лапша код
опять же вопрос обновления конфигурации без рестарта приложений (ну или части)
блин, заблудился в трех елках

Eugine
28.12.2016
15:00:21
так по такой-же схеме, как и первичная конфигурация
каждый раз приложение дергает метод update_config у каждого из объектов детей
выглядит убого, но и не обращается к воображаемой глобальной переменной конфига
хз

Alex Milushev
28.12.2016
15:01:50
с другой стороны глобальный объект и состояние не намного лучше

H
28.12.2016
15:04:15
послушай как у светлова в aiohttp сделано

Zart
28.12.2016
15:04:22
ненавижу глобальные конфигурации

H
28.12.2016
15:04:47
мне понравилось, я так стал делать + очень удобно что можно на лету менять конфигурацию

Alex Milushev
28.12.2016
15:05:08
или код читать?

Google

H
28.12.2016
15:05:33
да он вроде в каждом докладе говорит про это
https://www.youtube.com/watch?v=1TU_OJuh7B8 тут точно было

Zart
28.12.2016
15:06:14
http://aiohttp.readthedocs.io/en/stable/tutorial.html#configuration-files гм

H
28.12.2016
15:06:34
https://www.youtube.com/watch?v=F6sa6G0lJCk
или тут

Alex Milushev
28.12.2016
15:06:38
спасибо

Zart
28.12.2016
15:06:44
я б не сказал что ямл так уж бест

H
28.12.2016
15:07:00
или зарт скинул правильную ссылку
да похуй на ямлы
идея в app['config'] = conf

Zart
28.12.2016
15:07:35
а app - глобал? 8)

H
28.12.2016
15:07:45
это что-то типа глобального объекта, но не совсем

H
28.12.2016
15:08:02
у тебя к нему доступ только в хендлерах
он в реквестах зашит

Eugine
28.12.2016
15:08:37
воу воу
объект-приложение
храни внутри
идея в app['config'] = conf

Zart
28.12.2016
15:09:18
мне кажется или это не совсем отвечает на изначальный вопрос..

H
28.12.2016
15:09:54
а че за вопрос то был? :)

Google

Zart
28.12.2016
15:10:27
человек похоже пытается сообразить как ему заархитектурить передачу конфигурационных параметров между частями системы

H
28.12.2016
15:10:29
вроде отвечает

Zart
28.12.2016
15:10:47
либо запиздячить куда-то глобально, либо передавать везде и всюду явно

H
28.12.2016
15:11:01
первый вариант так себе

Zart
28.12.2016
15:11:12
угу, так себе. поэтому джанга его и выбрала ;Р

H
28.12.2016
15:11:18
а второй с небольшими модификациями, как в aiohttp

Alex Milushev
28.12.2016
15:11:26

H
28.12.2016
15:11:41
примеры я дал, остальное можно спиздить в коде, например

Eugine
28.12.2016
15:11:49
так почему бы не реконфигугировать всю систему прямо явно
в каждом компоненте вызываем reconfigure метод и туда передаём каку

Admin
ERROR: S client not available

Zart
28.12.2016
15:12:19
тут еще надо учитывать тот факт - нужна ли тебе поддержка динамической реконфигурации или нет

H
28.12.2016
15:12:23
все от системы зависит

Zart
28.12.2016
15:13:07
вместо push-подхода где мы явно передаем параметры, можно юзать pull вариант
вместо сования готовых диктов - предоставлять коллбак, который будет дергать компонент, чтобы получить искомое
тут еще есть ряд нюансов

Alex Milushev
28.12.2016
15:14:24

Zart
28.12.2016
15:14:32
скажем если ты передаешь компоненту дикт с конфигом
как отреагирует код, если этот конфиг потом вне компонента будет мутирован?

Alex Milushev
28.12.2016
15:14:37
на будущее

H
28.12.2016
15:14:41
короче делай через глобальную переменную ?

Zart
28.12.2016
15:14:57
отключите микрофон депутату слева

Google

H
28.12.2016
15:15:13
вряд ли у тебя там супер хайлоад, что ты в чятике консультируешься :)
глобал синглтон с локом и полетели
вжжжжжжжжжжжжжжжжжж

Alex Milushev
28.12.2016
15:15:59
неа, но наверняка есть best practice и вот это вот все
и вообще учиться же надо

Igor
28.12.2016
15:16:33

H
28.12.2016
15:16:41
читай чужой код
(но не джангу)
смотри как другие делают

Zart
28.12.2016
15:17:48
я видел хороший стиль работы с конфиг данными
положим у нас есть некий дикт с параметрами
def something(config):
param1 = config['param1']
param2 = config['param2']
... do whatever ...
выдернув копию значений из мутабельной структуры такой код не будет зависеть от мутаций конфига в коллбаках/соседних потоках/т.п.
и позволяет писать реентерантный код

H
28.12.2016
15:18:06
обычно фреймворк предоставляет средства хранения конфигурации, его и надо использовать

Zart
28.12.2016
15:18:31
самый убойный конфиг у зопы имхо

H
28.12.2016
15:19:44

Zart
28.12.2016
15:19:58
нахер нужен лок?
бездумное применение локов где попало приведет к сериализации кода

H
28.12.2016
15:20:39
а вдруг данные поменяются во время выполнения

Zart
28.12.2016
15:20:43
ну

Roman
28.12.2016
15:21:02
лучше скажите кто как делает релоад конфига на лету

Zart
28.12.2016
15:21:50
релоад можно по разному реализовывать

H
28.12.2016
15:22:31
вешай приложению отлавливать сигнал HUP :)

Zart
28.12.2016
15:22:32
либо пересозданием целого инстанса заново с новыми параметрами
либо алгоритмами, которые позволяют менять параметры на ходу

H
28.12.2016
17:21:55
https://spb.hh.ru/vacancy/19128820
Наши ожидания от кандидатов:
отличное знание Python 2.7.
использование табов.