@proelixir

Страница 962 из 1045
Никита
24.05.2018
19:14:28
ну можно на хуке чистить, а можно внешний ключ набросить

и будет без хуков чистицо)

Артем
24.05.2018
19:14:56
да, внешний ключ придётся тогда

нулан

Google
Артем
24.05.2018
19:15:19
@gnovoselov твоя взяла )

Никита
24.05.2018
19:15:55
там у гардиана с хуками все в порядке - на каждый чих понавешать можно. так что проблем не должно возникнуть

Артем
24.05.2018
19:16:24
ну вот вишь они немного со свипером не сделали) там вызывается purge_expired_tokens

а там delete_all

Никита
24.05.2018
19:18:42
чот я тебя не понял, ну да ладно)

Dmitry
24.05.2018
19:23:18
а кроме conform ничего больше нет в elixir?
Мне больше ничего не известно.

Dmitry
24.05.2018
19:36:13
По-моему guardian db супер мелкая хрень

Alexey
24.05.2018
19:36:21
а мы вот для конфигов confex пробовали

Dmitry
24.05.2018
19:36:23
И можно сделать все самому

Dmitry
24.05.2018
19:42:20
@bolshakov_av В :kernel inet_dist_listen_min, inet_dist_listen_max через него вообще не сконфигурируешь, если я правильно понимаю?

Alexey
24.05.2018
19:42:43
я не понял вопрос

Артем
24.05.2018
19:44:58
И можно сделать все самому
Можно, к тому же уж лучше dets или мнезия

Имхо

Google
Dmitry
24.05.2018
19:45:53
@bolshakov_av У приожения :kernel (которое первым стартуется) есть опции разные, так вот я понимаю, что confex-ом их не сконфигурируешь.

Как я понимаю

Alexey
24.05.2018
19:46:21
а. ну, возможно.

Dmitry
24.05.2018
19:46:28
inet_dist_listen_{min,max} - ограничивает порты для distributed.

Это то, почему я confex по сравнению с conform не могу всерьёз воспринимать.

Alexey
24.05.2018
19:47:15
ну, то есть, conform получше?

Dmitry
24.05.2018
19:47:24
Бывает круто иметь jwt доступным для микросервисов

Поэтому имхо редис лучше всего

Dmitry
24.05.2018
19:47:38
@bolshakov_av Ну он другой source использует, конфигурационный фаил, а не enviroment, но да.

Dmitry
24.05.2018
19:47:40
Можно к nginx подрубить

Чтобы сразу резать

Dmitry
24.05.2018
19:48:21
Не идеален, но единственное, что работает.

Артем
24.05.2018
20:02:28
@Virviil в данном проекте не сильно подойдёт, мне рядом с jwt пуш токен надо класть и искать всё это по юзеру

странная штука гвардиан



а в RFC 4.1.7. "jti" (JWT ID) Claim The "jti" (JWT ID) claim provides a unique identifier for the JWT. The identifier value MUST be assigned in a manner that ensures that there is a negligible probability that the same value will be accidentally assigned to a different data object; if the application uses multiple issuers, collisions MUST be prevented among values produced by different issuers as well. The "jti" claim can be used to prevent the JWT from being replayed. The "jti" value is a case- sensitive string. Use of this claim is OPTIONAL.

всё равно таблицу гвардиана фиксить

Никита
25.05.2018
14:47:38
зачем?

оно работает же

Артем
25.05.2018
14:48:02
** (Postgrex.Error) ERROR 42830 (invalid_foreign_key): there is no unique constraint matching given keys for referenced table "guardian_tokens"

Google
Артем
25.05.2018
14:48:09
у него юник на двух полях

Никита
25.05.2018
14:48:20
ну и что?

работает оно.

зачем ломать то, что работает?

Артем
25.05.2018
14:48:39
add :guardian_token_jti, references(:guardian_tokens, column: :jti, on_delete: :delete_all, type: :varchar, null: false)

внешний ключ не создаёццо

Никита
25.05.2018
14:49:07
а ты на токен навесь, а не на жтиай

jwt который

Артем
25.05.2018
14:49:42
так я ж и говорю. придётся всё равно таблицу гвардиана модифицировать, как минимум ключ добавить

наверно правильнее jti вешать. он вроде как уникальный, а токен текстовый и индекс пухлый будет

Никита
25.05.2018
14:50:51
ща погодь, гляну как у нас навешан

modify :auth_token, references( :guardian_tokens, column: :jwt, type: :text, on_delete: :delete_all) end

это может с точки зрения пухлости индекса и не очень

не спорю)

Артем
25.05.2018
14:52:50
соблазнительно конечно, по токену проще потом дёргать чем jti из claims тащить

Никита
25.05.2018
14:53:37
А, ну у них jti+aud уникальны

и если навешивать внешний - то на оба сразу как-то) чо та такое тоже мучение было, потому навесились на токен)

Артем
25.05.2018
14:54:34
А, ну у них jti+aud уникальны
ну у них да, только в rfc написано, что jti должен быть уникален даже без учёта aud))

Никита
25.05.2018
14:55:29
ну попробуй унику индекс на него набросить просто. схему то не надо менять лезть в глубину

Артем
25.05.2018
15:02:48
ну да, я навесил на jti, ворк, спасибо)

Google
abc
25.05.2018
16:14:46
https://www.youtube.com/watch?v=MTT1Jl4Fs-E

Свежак

HTTP2 во все поля

Taras ?
25.05.2018
16:47:33
расскажите есть ли разница между http1 и http2, если на фронте все-равно стоит nginx

и если есть разница — в чем разница?

Vladimir
25.05.2018
16:55:42
nginx умеет в http2, но без ssl не получится смысл в том, чтобы быстрее данные слать, и уметь отправлять их ещё до того, как клиент попросит, например. Приоритеты расставлять, и не нужно каждый раз коннект устанавливать, ttfb не так влияет на скорость

Taras ?
25.05.2018
16:59:03
вот и хорошо)

MrFlorius
25.05.2018
21:42:41
Может ли в качестве имени таблицы в mnesia использоваться имя существующего модуля?

Raman
26.05.2018
16:13:14
Ребята, всем привет. Мб кто-нибудь знает - есть ли в elixir правило хорошего тона по размещению модулей в файлах? Например, в одном файле должен быть только 1 модуль. Понимаю, что компилятор разрешает больше, но в любом случае.

Fey
26.05.2018
16:31:51
https://github.com/christopheradams/elixir_style_guide#one-module-per-file

Vladimir
26.05.2018
16:33:06
Самописные гайды разве что есть. Я видел всякое, где больше одного модуля в файле. Особенно когда макросы во все поля, которые эти самые модули генерят. Там тогда такое слабочитаемое рубилово начинается...

Raman
26.05.2018
16:42:56
@feymartynov @VladPotap Спасибо. Сначала начал размещать по 2 или 3 модуля в файле, если они небольшие и связаны между собой, но сейчас закрываю тестами и понимаю, что как-то это не агонь выглядит вообще.

Dmitry
26.05.2018
16:44:36
Рекомендую смотреть Elixir-овский сорс-код по этому вопросу. Практически всегда один модуль == один фаил, но есть случаи, когда это не так (либо вложенные модули, либо имплементация протоколов). Рекомендую поступать точно так же.

В основном 1 модуль == 1 фаил, кроме специфических исключений.

И соблюдать то, что название модуля совпадает с тем какой путь и имя к файлу.

Raman
26.05.2018
16:47:49
Dmitry Спасибо большое. В общем и целом, не надо отвыкать от того, что в dotnet :)

Посмотрю потом только, когда доберусь до нужной таски, можно ли credo заставить следовать этим правилам.

Кстати, ребята. Мб кому интересно будет - https://www.fun-mooc.fr/courses/course-v1:parisdiderot+56002+session03/about

Classes Start sep 17 2018 Classes End dec 12 2018

Google
Dmitry
26.05.2018
17:02:02
@rakkattakka ExUnit - хороший пример по структуре, к примеру есть модуль ExUnit, лежит в папке lib, все остальные модули лежат в папке ex_unit и начинаются имена модулей с ExUnit.Something, т.е. что каждая аппликация (кроме самого Elixir-а по понятным причинам) должна иметь свой namespace. assertions - там например exception-ы в том же файле (каждый exception - это nj;t новый модуль). В самом Elixir-е - фаил enum.ex хороший пример - в нём помимо этого есть сам протокол Enumerable и имплементации к разным типам в том же файле. В файле version.ex - есть вложенные модули к примеру Requirement (который извне файла является Version.Requirement). Как сам Elixir(и приложения в нём) устроен можно во многом использовать для того, чтобы структурировать свои приложения.

Про exception-ы не сразу вспомнил ?

Raman
26.05.2018
17:16:35
@rakkattakka ExUnit - хороший пример по структуре, к примеру есть модуль ExUnit, лежит в папке lib, все остальные модули лежат в папке ex_unit и начинаются имена модулей с ExUnit.Something, т.е. что каждая аппликация (кроме самого Elixir-а по понятным причинам) должна иметь свой namespace. assertions - там например exception-ы в том же файле (каждый exception - это nj;t новый модуль). В самом Elixir-е - фаил enum.ex хороший пример - в нём помимо этого есть сам протокол Enumerable и имплементации к разным типам в том же файле. В файле version.ex - есть вложенные модули к примеру Requirement (который извне файла является Version.Requirement). Как сам Elixir(и приложения в нём) устроен можно во многом использовать для того, чтобы структурировать свои приложения.
Огромное спасибо. Вот у меня кстати вопрос по поводу version.ex файла и его вложенных модулей. Он достаточно большим получился и лично я бы его на несколько попилил, даже учитывая вложенность этих самых namespacов, но как вижу, принятно и так оформлять. По поводу exception'ов тоже интересный случай. В Plug, например, есть отдельный файл - https://github.com/elixir-plug/plug/blob/master/lib/plug/exceptions.ex, но в то же время некоторые файлы добавляю свои - https://github.com/elixir-plug/plug/blob/master/lib/plug/parsers.ex.

Raman
26.05.2018
17:23:39
Да, подозреваю, что тут ещё чуйка и общее предпочтение роль играют. Мол, если в два скрина не влазит размер твоих нескольких модулей в одном файле, то имеет смысл распиливать. И уверен, что при разработке на реальных проектах это сразу и будет оговариваться.

В любом случае, спасибо за наводки и помощь. По поводу ex_unit - я так понимаю, он представляет собой один из проектов общего umbrellа?

Так?

Dmitry
26.05.2018
17:24:39
Да.

Только сам Elixir - чуть другая umbrella ? Приложения лежат не в apps, а в lib, а в umbrella они будут лежать в apps.

Страница 962 из 1045