Size: a a a

2020 October 06

AR

Andrew Rudenko in pro.elixir
Denis Fakhrtdinov
7 строк — выносить в отдельный модуль?..
это такая философия, можно не думать, а просто добиваться двухстрочников и считать, что код хороший. для верности парочку аббревиатур навернуть. весьма популярна, особенно среди рейлс / жс программистов (по теме — https://softwarebyscience.com/very-short-functions-are-a-code-smell-an-overview-of-the-science-on-function-length/)
источник

DF

Denis Fakhrtdinov in pro.elixir
Интересная статья 🙂
источник

VS

Vladimir Sekisov in pro.elixir
я думал, такая реализация -
само-собой разумеющееся,
если просматривается возможность
разделения ответственности.
А тут нате - в блогах обьясняют.
Весь OTP на этом шаблоне построен, хотя в erlang
просто больше никак с тех
пор как параметризованные
модули упокоили.
источник

AR

Andrew Rudenko in pro.elixir
Vladimir Sekisov
я думал, такая реализация -
само-собой разумеющееся,
если просматривается возможность
разделения ответственности.
А тут нате - в блогах обьясняют.
Весь OTP на этом шаблоне построен, хотя в erlang
просто больше никак с тех
пор как параметризованные
модули упокоили.
типа ты вот за те 7 строчек отвечаешь, а я вот за эти 5, такое разделение ответсвенности? )

никакой отп не построен ни на каком шаблоне разделения на модули по количеству строк кода / количестве логики
источник

VS

Vladimir Sekisov in pro.elixir
Andrew Rudenko
типа ты вот за те 7 строчек отвечаешь, а я вот за эти 5, такое разделение ответсвенности? )

никакой отп не построен ни на каком шаблоне разделения на модули по количеству строк кода / количестве логики
я про ссылку на блог писал, не про вас, про вас я и не думал.
источник

SM

Sergei Maximov in pro.elixir
Roman Kolesnev
Пока не нашел, но вот статья с конкретными примерами: https://pragdave.me/blog/2017/07/13/decoupling-interface-and-implementation-in-elixir.html

И на примере этих примеров можно уже что-то сказать конкретное.

При такой архитектуре, в случае когда нужно отрефакторить в сервер или из сервера - модуль с логикой остается нетронутым. Т е не нужно переписывать тесты и т п. Т е при рефакторинге ты можешь напортачить с имплементацией GenServer, но логику что уже есть не сломаешь.

Это соответвует Open-Closed Principle из SOLID.
Градиент в блоках кода выглядит свежо
источник

AD

Anastasiya Dyachenko in pro.elixir
Roman Kolesnev
Пока не нашел, но вот статья с конкретными примерами: https://pragdave.me/blog/2017/07/13/decoupling-interface-and-implementation-in-elixir.html

И на примере этих примеров можно уже что-то сказать конкретное.

При такой архитектуре, в случае когда нужно отрефакторить в сервер или из сервера - модуль с логикой остается нетронутым. Т е не нужно переписывать тесты и т п. Т е при рефакторинге ты можешь напортачить с имплементацией GenServer, но логику что уже есть не сломаешь.

Это соответвует Open-Closed Principle из SOLID.
Интересная идея. А что делать если в логике сервера есть отправка сообщений другим процессам или самому себе, если это положить в имплементацию это не будет смешиванием уровней ответственности?
источник

VS

Vladimir Sekisov in pro.elixir
Anastasiya Dyachenko
Интересная идея. А что делать если в логике сервера есть отправка сообщений другим процессам или самому себе, если это положить в имплементацию это не будет смешиванием уровней ответственности?
по идее, "имплементация" должна реализовывать
"бизнес" интерфейс и общаться с сущностями,
которые этот интерфейс ей предоставляет,
если она посылает что-то кому-то, то на своем уровне,
Маше или Пете,
как потом Маша или Петя транслируются дальше в процессы
или не транслируются - об этом она ничего знать не должна.
источник

AB

Alex Bubnov in pro.elixir
Denis Fakhrtdinov
7 строк — выносить в отдельный модуль?..
Нет, это перебор, это дерьмовые практики из руби-комьюнити. Я только там такой нацизм помню.
источник

AB

Alex Bubnov in pro.elixir
Anastasiya Dyachenko
Интересная идея. А что делать если в логике сервера есть отправка сообщений другим процессам или самому себе, если это положить в имплементацию это не будет смешиванием уровней ответственности?
Интерпретатор - something in, effects out
источник

AB

Alex Bubnov in pro.elixir
Но это если очень нужно разделить, это уже неприятно писать будет
источник

МБ

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

SZ

Sergei Zobov in pro.elixir
источник

SZ

Sergei Zobov in pro.elixir
🎉
источник

AB

Alex Bubnov in pro.elixir
Jit в данном случае это очень громкое слово, откровенно говоря.
источник

AR

Andrew Rudenko in pro.elixir
Alex Bubnov
Jit в данном случае это очень громкое слово, откровенно говоря.
Да кстати, а что именно оно делает? Как достигается «also specialize each instruction on their argument types» если оно в лоад тайм все транслирует?
источник

VC

Vladislav Chugunov in pro.elixir
Возможно оно там на  SSA операеться?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Что за функции +++ и --- и почему я не нахожу их в доке?
источник

PG

Pig Greenest in pro.elixir
Bitwise?
источник

PG

Pig Greenest in pro.elixir
не, не он
источник