Данная статья является продолжением предыдущей. На этот раз мы на примерах рассмотрим директиву use и магический метод __using__, магический, потому что подобные методы с двумя подчеркиваниями используют в Питоне, называя магическими. Довольно часто мы пишем use GenServer, или require Logger, давайте разберемся в чем же разница? Различие между require и use Если объяснять на пальцах, то use расширяет модуль, в котором он используется: дополняет его методами и зависимостями, описанными в __using__, поэтому может возникнуть конфликт имен. Используйте use осторожно. Пример: Тем самым мы расширили модуль Foo, добавив в него функцию twenty_five. require компилирует макросы, описанные в модуле, и обращаться к ним можно только через namespace модуля. На примере того же Logger’а: На примере my_awesome_app_web.ex — модуль феникса, предоставляющий интерфейсы для view, controller, channel, router. Рассмотрим использование директивы using, и разберемся, почему она так полезна. После этого одной за