Size: a a a

2019 December 19

YS

Yuri S. in pro.elixir
код не мой
источник

YS

Yuri S. in pro.elixir
мне показали
источник

YS

Yuri S. in pro.elixir
меня смутило
источник

NM

Natalia Maximenko in pro.elixir
а если там не число, такой код просто не найдёт подходящую функцию и упадёт?)
источник

V

V in pro.elixir
Понятно, что не твой. Я критикую не тебя, а ошибки в реализации.
источник

NM

Natalia Maximenko in pro.elixir
или у вас там есть альтернатива на все остальные случаи
источник

YS

Yuri S. in pro.elixir
ну в данном случае упадет
источник

V

V in pro.elixir
DateTime.from_unix принимает только int, поэтому я б не стал вводить дополнительное ограничение when(is_integer(timestamp))
источник

YS

Yuri S. in pro.elixir
ну тогда надо описать спек наверное
источник

YS

Yuri S. in pro.elixir
я думаю что должно быть понятно что принимает функция при первом взгляде на ее описание
источник

YS

Yuri S. in pro.elixir
в данном примере думаю к этому не стоит придираться
источник

V

V in pro.elixir
Natalia Maximenko
а если там не число, такой код просто не найдёт подходящую функцию и упадёт?)
У программы есть так называемый happy path и остальные варианты путей исполнения. Обрабатывать ошибку или нет - зависит от того, откуда приходят данные - из доверенного или недоверенного источника.
источник

AK

Alexey Kurdukov in pro.elixir
Yuri S.
def cast(timestamp) when is_integer(timestamp) do
   if String.length("#{timestamp}") > 10 do
     DateTime.from_unix(timestamp, :millisecond)
   else
     DateTime.from_unix(timestamp)
   end
 end


мне говорят что это красиво
А в чем проблема поставить в условии функции "when timestamp > 10_000_000_000. Это будет быстрее работать м понятнее читаться . Я же правильно понимаю что смысл в том, чтобы парситб разные спецификации timestamp с сил секундами и без?
источник

YS

Yuri S. in pro.elixir
да, верно
источник

AK

Alexey Kurdukov in pro.elixir
Я думаю данный пример ничего не показывает. Это просто плохо написанный код. Он ничего не говорит о языке как о таковом
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Я думаю, что в 1970 году с миллисекундами будем меньше чем 10, а в около 2500 - будет без миллисекунд больше чем 10, так что код плохой и так и так
источник

AK

Alexey Kurdukov in pro.elixir
Отчасти согласен. Ну в принципе тогда система timestamp странная. Выражение времени в двух форматах, которые в ближайшем будущем будут пересекаться. Кроме этого не подходит для выражения событий происходивших раньше
источник

AK

Alexey Kurdukov in pro.elixir
Но если сказать что это мера измерения времени для вещей, явлений в настоящем - нормально.
источник

SM

Sergei Maximov in pro.elixir
Используй remote observer, это же erlang. Observer запускается у тебя на локальной ноде и подключается к твоей удаленной ноде
источник

SM

Sergei Maximov in pro.elixir
Yuri S.
def cast(timestamp) when is_integer(timestamp) do
   if String.length("#{timestamp}") > 10 do
     DateTime.from_unix(timestamp, :millisecond)
   else
     DateTime.from_unix(timestamp)
   end
 end


мне говорят что это красиво
Я, может, очевидную вещь скажу, но это говнокод
источник