Size: a a a

2021 January 03

V

V in pro.elixir
Yuri S.
пользователей до 1000 уник. (в сутки) пока

из +

сайт очень быстрый, страница с нуля 70-90мс, дальше 30-40мс получение через сокет
не нужен фронт на реакте
очень быстрая разработка
можно выкинуть всякие js селекты и прочие либы

из -
некоторое время ушло на понимание, как сейчас должен вызываться js на страницах (решение, все через хуки)
кастомная схема авторизации на сайте, мы используем ETS, как промежуточное хранилище для передачи в куки браузера при следующем запросе, так как прямого доступа к кукам из liew_view нет
Что с индексацией поисковиками?
источник

YS

Yuri S. in pro.elixir
сайт не в публичном доступе, а какие должны быть проблемы? по сути обычный монолит с рендером на стороне сервера
источник

ML

Maksim Lapshin in pro.elixir
я не очень понимаю, как связан liveview и индексация.

Какой паттерн использования liveview там, где нужна индексация?
источник

S

Shieldy in pro.elixir
Andrzej Follit, пожалуйста, нажмите на кнопку ниже в течение указанного времени, иначе вы будете кикнуты. Спасибо! (60 сек)
При поддержке Золота Бородача
источник

A

Aleksey @cheatex in pro.elixir
В эликсире есть аналог кложурного some->? Я пробовал с with что-то сделать, но получилась нечитабельная лапшина:
      with user when not is_nil(user) <- Auth.current_user(conn)
              email when not is_nil(email) <- Map.fetch!(user, :email) do
       use_for_logic(email)
     end

Или как такие вещи принято записывать?
источник

LL

Lama Lover in pro.elixir
Aleksey @cheatex
В эликсире есть аналог кложурного some->? Я пробовал с with что-то сделать, но получилась нечитабельная лапшина:
      with user when not is_nil(user) <- Auth.current_user(conn)
              email when not is_nil(email) <- Map.fetch!(user, :email) do
       use_for_logic(email)
     end

Или как такие вещи принято записывать?
with %{email: email} when not is_nil(email) <- Auth.current_user(conn) do
 use_for_logic(email)
end
источник

A ß in pro.elixir
добро пожаловать в клуб хейтеров with
источник

LL

Lama Lover in pro.elixir
A ß
добро пожаловать в клуб хейтеров with
Вот тебе что в with не нравится? Отличный макрос, единственный vararg во всём языке
источник

IB

Ilya Borovitinov in pro.elixir
Aleksey @cheatex
В эликсире есть аналог кложурного some->? Я пробовал с with что-то сделать, но получилась нечитабельная лапшина:
      with user when not is_nil(user) <- Auth.current_user(conn)
              email when not is_nil(email) <- Map.fetch!(user, :email) do
       use_for_logic(email)
     end

Или как такие вещи принято записывать?
Мне кажется, можно и макрос some написать, если частый юзкейс
источник

LL

Lama Lover in pro.elixir
А вообще в elixir принято обрабатывать не nil, а either в with

with(
 {:ok, res1} <- function1(x),
 {:ok, res2} <- function2(res1)
) do
 function3(res2)
end
источник

A

Aleksey @cheatex in pro.elixir
Lama Lover
with %{email: email} when not is_nil(email) <- Auth.current_user(conn) do
 use_for_logic(email)
end
Ну так... А если бы надо было не Map.fetch!(user, :email) а query_repo_for_email(user) и оттуда nil | string() возвращался?
источник

A

Aleksey @cheatex in pro.elixir
Lama Lover
А вообще в elixir принято обрабатывать не nil, а either в with

with(
 {:ok, res1} <- function1(x),
 {:ok, res2} <- function2(res1)
) do
 function3(res2)
end
А чем принято nil обрабатывать?
источник

A ß in pro.elixir
кстати, у нас же try-catch есть
источник

A ß in pro.elixir
можно его использовать
источник

LL

Lama Lover in pro.elixir
Aleksey @cheatex
А чем принято nil обрабатывать?
Ничем, лично я в своём коде избегаю nil-ов
А так, эрлангисты весь этот with декомпозируют в функции и матчатся в них

Например,
def update_username(id, newname) do
 id
 |> do_get_user()
 |> do_update_username()
end

defp do_get_user(nil), do: nil
defp do_get_user(id), do: User.get(id)

defp do_update_username(nil, _), do: nil
defp do_update_username(user, name), do: User.update(user, name: name)
источник

LL

Lama Lover in pro.elixir
A ß
кстати, у нас же try-catch есть
Ну ты и злодей
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Aleksey @cheatex
В эликсире есть аналог кложурного some->? Я пробовал с with что-то сделать, но получилась нечитабельная лапшина:
      with user when not is_nil(user) <- Auth.current_user(conn)
              email when not is_nil(email) <- Map.fetch!(user, :email) do
       use_for_logic(email)
     end

Или как такие вещи принято записывать?
Никак не мог понять, при чем тут Лапшин
источник

LL

Lama Lover in pro.elixir
Źmićer Rubinštejn
Никак не мог понять, при чем тут Лапшин
ахаха
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Lama Lover
Ничем, лично я в своём коде избегаю nil-ов
А так, эрлангисты весь этот with декомпозируют в функции и матчатся в них

Например,
def update_username(id, newname) do
 id
 |> do_get_user()
 |> do_update_username()
end

defp do_get_user(nil), do: nil
defp do_get_user(id), do: User.get(id)

defp do_update_username(nil, _), do: nil
defp do_update_username(user, name), do: User.update(user, name: name)
Тока не do_ а maybe_
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Выглядит уебищно честно говоря
источник