Size: a a a

2020 December 19

T

TGG in pro.elixir
А как правильно по стилю расчленять программу? Ну там, когда надо выносить всё в отдельный модуль, а когда нет и т.д.
источник

SK

Suren Kirakosyan in pro.elixir
TGG
А как правильно по стилю расчленять программу? Ну там, когда надо выносить всё в отдельный модуль, а когда нет и т.д.
Это имеет непосредственное отношение к твоей задаче. Тебе самому придётся решать, где лучше выносить в отдельный модуь, а где оставлять. Вообщем, если для решение одной задачи используешь много функций и считаешь, что их можно сгруппировать по модулям, то в таких случаях можем разделить свой главный модуль на несколько. Короче из логики твоей программы ты должен разобраться в этом.
Если не читал книгу Programming Phoenix >= 1.4, то советую прочесть, там найдёшь ответы на многие будущие вопросы.
Можешь также посмотреть это видел - https://www.youtube.com/watch?v=jXeHRkzzjqk&feature=emb_logo
источник

T

TGG in pro.elixir
Suren Kirakosyan
Это имеет непосредственное отношение к твоей задаче. Тебе самому придётся решать, где лучше выносить в отдельный модуь, а где оставлять. Вообщем, если для решение одной задачи используешь много функций и считаешь, что их можно сгруппировать по модулям, то в таких случаях можем разделить свой главный модуль на несколько. Короче из логики твоей программы ты должен разобраться в этом.
Если не читал книгу Programming Phoenix >= 1.4, то советую прочесть, там найдёшь ответы на многие будущие вопросы.
Можешь также посмотреть это видел - https://www.youtube.com/watch?v=jXeHRkzzjqk&feature=emb_logo
Спасибо.
Если я буду придерживать примерно той же логики, которой в крестах придерживаюсь, то это будет правильно?
источник

SK

Suren Kirakosyan in pro.elixir
TGG
Спасибо.
Если я буду придерживать примерно той же логики, которой в крестах придерживаюсь, то это будет правильно?
Я с плюсами не знаком, не могу ответить, но скорее всего нужно придерживаться функциональной парадигме программирования и разделять свою программу на логические части.
источник

ع

عاصم بن حارث... in pro.elixir
TGG
Спасибо.
Если я буду придерживать примерно той же логики, которой в крестах придерживаюсь, то это будет правильно?
зависит от того какой "логикой" ты пользуешься в ЦэПП )))
И вообще, разве сложно нагуглить: "elixir best practices"???
источник
2020 December 20

Е

Евгений in pro.elixir
Я вот опять хуйней голову забиваю :(
Вот смотрю на это условие и почему-то оно меня бесит своим внешним видом:
    if is_integer(min) and
        min >= 0 and
        (is_integer(max) or max == :infinity) and
        max > min do
     :ok
   else
     :error
   end
источник

Е

Евгений in pro.elixir
И шо это за ерунда?
    with true <- is_integer(min) and min >= 0,
        true <- is_integer(max) or max == :infinity,
        true <- max > min do
     :ok
   else
     :error
   end
источник

Е

Евгений in pro.elixir
Как нормвльные люди такое оформляют?
источник

ML

Maksim Lapshin in pro.elixir
Евгений
Я вот опять хуйней голову забиваю :(
Вот смотрю на это условие и почему-то оно меня бесит своим внешним видом:
    if is_integer(min) and
        min >= 0 and
        (is_integer(max) or max == :infinity) and
        max > min do
     :ok
   else
     :error
   end
Оно бесит, потому что boolean превратили в ok / error
источник

ML

Maksim Lapshin in pro.elixir
Ну и оно неправильное
источник

Е

Евгений in pro.elixir
Maksim Lapshin
Оно бесит, потому что boolean превратили в ok / error
ну это я так упростил, там на самом деле не просто :ok возвращается, а {:ok, result}
источник

Е

Евгений in pro.elixir
Maksim Lapshin
Ну и оно неправильное
а как правильно? длинный guard мутить?
источник

Е

Евгений in pro.elixir
Как не переделываю все равно уродливо как-то.
источник

ML

Maksim Lapshin in pro.elixir
Евгений
а как правильно? длинный guard мутить?
Нельзя сравнивать max = :infinity с числом min
источник

ML

Maksim Lapshin in pro.elixir
Это вообще дизайн бага, что одно сравнение для операций и сортировки
источник

Е

Евгений in pro.elixir
Maksim Lapshin
Нельзя сравнивать max = :infinity с числом min
Хм, вроде это известная идиома, так как атом всегда больше числа. Или я путаю?
источник

Е

Евгений in pro.elixir
Maksim Lapshin
Это вообще дизайн бага, что одно сравнение для операций и сортировки
Пожалуй соглашусь. Но имеем то что имеем.
источник

ML

Maksim Lapshin in pro.elixir
Евгений
Хм, вроде это известная идиома, так как атом всегда больше числа. Или я путаю?
Категорически вредно на это расчитывать
источник

ML

Maksim Lapshin in pro.elixir
Живой человек не может и не должен помнить порядок сортировки типов
источник

Е

Евгений in pro.elixir
Maksim Lapshin
Категорически вредно на это расчитывать
Форматер тогда вообще что-то нечитаемое делает:
    if is_integer(min) and
        min >= 0 and
        ((is_integer(max) and max > min) or
           max == :infinity) do
источник