Size: a a a

2020 August 19

ev

eugene vikulov in pro.elixir
Lama Lover
Какую задачу вы пытаетесь решить? Очень похоже что это какие-то ненужные оптимизации, и разговор тут должен идти не о макросах, а об изначальной задаче.
вопрос именно о макросах. Я пытаюсь понять как впредь решать подобные задачи посредством их
источник

LL

Lama Lover in pro.elixir
eugene vikulov
вопрос именно о макросах. Я пытаюсь понять как впредь решать подобные задачи посредством их
У меня есть выступление, где я собрал всё что знаю о том, когда нужно писать макросы и когда нет.
https://youtu.be/X_3x09xcP1o?t=2282
источник

LL

Lama Lover in pro.elixir
И в этом случае, по-моему, можно обойтись через аттрибут модуля
источник

ev

eugene vikulov in pro.elixir
повторюсь, разумеется можно, я не спорю. Но вопрос был про другое
источник

МБ

Максим Барулин... in pro.elixir
Главное правило макросов - не писать макросы. А вообще есть книжка elixir metaprogramming или как-то так
источник

ev

eugene vikulov in pro.elixir
понял, отстал. извиняйте за беспокойство
источник

LL

Lama Lover in pro.elixir
eugene vikulov
повторюсь, разумеется можно, я не спорю. Но вопрос был про другое
Ну типа в макросах нет ничего сложного. Буквально два-три дня их пописать и всё станет интуитивно понятно. Гораздо сложнее обходиться без макросов и не терять читаемость кода используя аттрибуты модуля, поведения и всё такое — вот это вот уже гораздо более полезный навык
источник

МБ

Максим Барулин... in pro.elixir
eugene vikulov
понял, отстал. извиняйте за беспокойство
Нет, реально задача не понятна до конца. Если надо проверять наличие сервиса в списке, я бы сделал передачу списка через аргумент в юзинг и генерацию атрибута модуля с функцией, которая проверяет наличие преданного модуля в этом атрибуте, или генерацию мапы с ключами сервиса и и аналогичной проверкой
источник

LL

Lama Lover in pro.elixir
Максим Барулин
Нет, реально задача не понятна до конца. Если надо проверять наличие сервиса в списке, я бы сделал передачу списка через аргумент в юзинг и генерацию атрибута модуля с функцией, которая проверяет наличие преданного модуля в этом атрибуте, или генерацию мапы с ключами сервиса и и аналогичной проверкой
Ты тоже опасный парень, если честно
источник

МБ

Максим Барулин... in pro.elixir
Я знаю 😝
источник

LL

Lama Lover in pro.elixir
Есть нужно чтобы у модуля была функция, возвращающая список модулей, должен использоваться @behaviour
источник

B

Bogdan in pro.elixir
Tharin
К слову: что посоветуете по углублению в функциональный подход? Какие-нибудь крутые книги? Нашёл вот такую: Ричард Берд "Жемчужины проектирования алгоритмов. Функциональный подход" (2015)
Если с алгебраическими структурами functional programming in scala
источник

МБ

Максим Барулин... in pro.elixir
Lama Lover
Есть нужно чтобы у модуля была функция, возвращающая список модулей, должен использоваться @behaviour
Согласен
источник

ev

eugene vikulov in pro.elixir
Lama Lover
Есть нужно чтобы у модуля была функция, возвращающая список модулей, должен использоваться @behaviour
а с чего вы сделали вывод, что этого нет?
источник

МБ

Максим Барулин... in pro.elixir
Но можно все это смешать в ацкий эликсир 👹
источник

LL

Lama Lover in pro.elixir
eugene vikulov
а с чего вы сделали вывод, что этого нет?
Я это @Slavenin -у написал
источник

T

Tharin in pro.elixir
Bogdan
Если с алгебраическими структурами functional programming in scala
Ну вот да, всякие монады, функторы - сталкиваюсь впервые. В принципе Dry::Monad в рубях пользовался, понимаю, как и зачем, но теоретического бекграунда нет)
источник

LL

Lama Lover in pro.elixir
Tharin
Ну вот да, всякие монады, функторы - сталкиваюсь впервые. В принципе Dry::Monad в рубях пользовался, понимаю, как и зачем, но теоретического бекграунда нет)
Так и зачем этот теоретический бэкграунд? Мы тут все пользуемся компами, но я уверен очень мало кто из нас понимает как устроен branch prediction в современных процессорах, хотя любой код на динамически типизированном языке сильно опирается на эту фичу. Типа отсутствие глубоких знаний не мешает просто писать хороший код
источник

T

Tharin in pro.elixir
Lama Lover
Так и зачем этот теоретический бэкграунд? Мы тут все пользуемся компами, но я уверен очень мало кто из нас понимает как устроен branch prediction в современных процессорах, хотя любой код на динамически типизированном языке сильно опирается на эту фичу. Типа отсутствие глубоких знаний не мешает просто писать хороший код
не мешает, но что мне мешает захотеть узнать это получше?
источник

LL

Lama Lover in pro.elixir
Tharin
не мешает, но что мне мешает захотеть узнать это получше?
Это правда, для кругозора такие вещи точно не помешают. Даже банальная алгебра сильно в работе помогает
источник