Моки и явные контракты

Тестирование границ

Сначала, когда явные контракты отсутствовали, границы приложения выглядели так:

Поэтому изменение могло приводить к падению интеграционных тестов. Сейчас приложение зависит от контракта и только одна реализация этого контракта работает с HTTP:

Тесты такого приложения изолированы от и от Twitter API. Но как нам протестировать ?

Сложность тестирования больших систем заключается в определение четких границ между компонентами. Слишком высокий уровень изоляции при отсутствии интеграционных тестов сделает тесты хрупкими, а большинство проблем будут обнаруживаться только на production. С другой стороны, низкий уровень изоляции увеличит время прохождения тестов и сделает тесты сложными в сопровождении. Единственного верного решения нет, и уровень изоляции будет изменяться в зависимости от уверенности команды и прочих факторов.

Лично я бы протестировал на реальном Twitter API, запуская эти тесты по-необходимости во время разработки и каждый раз при сборке проекта. Система тегов в ExUnit — библиотеке для тестирования в Elixir — реализует такое поведение:

Исключим тесты с Twitter API:

При необходимости включим их в общий тестовый прогон:

Также можно запустить их отдельно:

Хотя я предпочитаю такой подход, внешние ограничения, вроде максимального количества запросов к API, могут сделать его бесполезным. В таком случае, возможно, действительно нужно использовать мок , если его использование не нарушает определенных ранее правил:

Изменение в приводит только к падению тестов на

Вы не мокаете (осторожно! мок в данном случае является глаголом!). Вместо этого, вы передаете его как зависимость через файл конфигурации, подобно тому, как мы делали для Twitter API
Вам все еще нужен способ протестировать работу вашего клиента до выкатки в production.. Вместо создания мока можно поднять dummy-сервер, который будет эмулировать Twitter API

bypass — один из проектов, который может в этом помочь. Все возможные варианты вы должны обсудить со своей командой

Вместо создания мока можно поднять dummy-сервер, который будет эмулировать Twitter API. bypass — один из проектов, который может в этом помочь. Все возможные варианты вы должны обсудить со своей командой.

Фиктивные объекты ?

Когда мы пишем тесты, мы проверяем предположения о работе функций. Если тестируемая функция чистая, зависит только от переданных аргументов, то и проверка предположения будет простой:

Чтобы проверить работу функции из примера выше, достаточно вызвать её с подготовленными аргументами и сравнить результат с ожидаемым:

Но если функция зависит не только от аргументов, но ещё от внешнего мира (то есть у неё есть побочные эффекты), то проверить её работу становится сложнее:

Чтобы проверить , нам нужно знать случайное число, которое вернёт . Это непрактично.

Также сложно проверить результат, если функция ничего не возвращает, а меняет окружение или другие объекты. Например, проверить функцию так в принципе не получится:

Для проверки подобных функций удобнее всего использовать фиктивные объекты.

Среди фиктивных объектов можно выделить две группы: стабы и моки.

НЕКОГДА ОТДЫХАТЬ

За студента-третьекурсника Красногорского филиала Владимира Афоничкина сейчас борются несколько ведущих театров России, потому что 18-летний парень успешно прошел международный кастинг «Балет будущего».

– Это кропотливая работа педагогов, – объясняет Надаховская. – Они целенаправленно готовят наших ребят к определенным конкурсам. Это дополнительная нагрузка.

Чтобы подготовить Афоничкина к смотру, на котором присутствовали представители ведущих балетных трупп мира, танцору и его педагогу Анатолию Коваленко пришлось позабыть о новогодних праздниках.

– Мы уже с 3 января приступили к репетициям! – говорит Владимир.

Некоторым студентам колледжа посчастливилось выступить с Денисом Мацуевым на Санкт-Петербургском культурном форуме.

– Поиск подмосковных талантов продолжается, – говорит известный пианист. – Мы постоянно находим искорки.

Неудивительно, что попасть в МГКИ мечтают многие школьники.

– У нас очень высокий конкурс, – подтверждает Татьяна Надаховская. – Мы отбираем лучших, поэтому и показатели у нас такие хорошие.

Главная

28.08.2019 ВНИМАНИЮ ПЕРВОКУРСНИКОВ! Торжественное посвящение в первокурсники состоится 3 сентября в 11.00 в здании (цокольный этаж) Воскресной школы на пересечении Московского проспекта и улицы 50-лет ВЛКСМ (Троицкий Храм). 2 сентября вы начинаете учиться по расписанию групповых занятий , размещенному в социальной сети Вконтакте на странице заместителя директора по учебной работе колледжа Павловой Марии Викторовны https://vk.com/pavmavi1978 (практически все учатся с 16.00 в помещении ПТУ — 2-ой Надсоновский проезд, дом 3, корп.3). Всем первокурсникам необходимо зарегистрироваться и добавиться в друзья и подписчики к Марии Викторовне, это же могут сделать и ваши родители. На её странице постоянно появляется актуальная информация.

27.08.2019 УШЁЛ ИЗ ЖИЗНИ ВИТАЛИЙ ПАВЛОВИЧ РУССКИХ 27 августа, после заседания педагогического совета, скоропостижно скончался один из старейших преподавателей колледжа — РУССКИХ ВИТАЛИЙ ПАВЛОВИЧ. Около 60 лет проработал он в нашем колледже, вел предметы музыкально-теоретического цикла – композицию, полифонию, методику преподавания композиции, инструментоведение, гармонию. Студенты класса композиции Виталия Павловича неизменно занимали места на престижных конкурсах, для многих из них композиция стала делом всей жизни – например для Рената Шибаева или преподавателя нашего колледжа, члена Союза композиторов РФ, Плеханова Сергея Александровича. Виталием Павловичем написано много замечательной музыки, которая неизменно продолжает звучать. Это — симфонии, вокальные циклы, трио, квартеты, фортепианные произведения, произведения для духовых инструментов и т.д Виталий Павлович навсегда останется для нас примером безграничной преданности своей профессии, мудрости и творчества, мы запомним его неуемное жизнелюбие, дружеское и внимательное отношение к подопечным студентам. Благодаря своему опыту, знаниям, целеустремленности, высоким морально-этическим принципам Виталий Павлович пользовался у коллег и студентов неизменным уважением. Выражаем соболезнования родственникам. Прощание с Виталием Павловичем Русских состоится в пятницу 30 августа в 12.30 в морге Центральной районной больницы в Пушкино, ул.Авиационная, дом 35. Похоронен Виталий Павлович будет на Николо-Архангельском кладбище в Москве — можно попрощаться и там, в 14.00 в центральном крематории этого кладбища.

16.08.2019 ВНИМАНИЮ ПОСТУПАЮЩИХ НА ВНЕБЮДЖЕТНОЕ ОТДЕЛЕНИЕ ВНИМАНИЕ! Уважаемые абитуриенты, рекомендованные к зачислению на ВНЕБЮДЖЕТНОЕ отделение в 2019 году! Вам необходимо заключить Договор на обучение! Для этого нужно позвонить в администрацию колледжа по телефону: 8-495-993-41-60 и согласовать время заключения Договора с секретарём.Дни для заключения договоров – 28, 29 и 30 августа. Без оплаты договора вы не будете допущены до обучения! Адрес администрации колледжа – г

Пушкино, ул. Тургенева, 24, помещение Президентской библиотеки. Студенты внебюджетного отделения II, III и IV курсов! Вам также необходимо получить сметы на оплату следующего обучения в эти же дни, предварительно согласовав время с заместителем директора по учебной работе — Павловой М.В. или с секретарём по телефону колледжа.

06.08.2019 КОНСУЛЬТАЦИИ ДЛЯ ПОСТУПАЮЩИХ ВО ВТОРУЮ ВОЛНУ ПРИЁМА ВНИМАНИЕ! Консультация с концертмейстером для подавших документы во вторую волну приёма (до 10 августа) состоится 9 августа с 11.00 до 13.00 в Большом зале ДМШ №1 г. Пушкино по адресу: г

Пушкино, ул. Крылова, д.1. При себе необходимо иметь разборчиво напечатанные и склеенные ноты. Концертмейстер — Миротинцева Елена Владимировна. Консультация по сольфеджио и теории музыки состоится 13 августа в 12.00 в классе №23 ДМШ №1 г. Пушкино по адресу: г. Пушкино, ул. Крылова, д.1. Преподаватель — Ханнанова Елена Николаевна

02.07.2019 МЕЖДУНАРОДНАЯ ТВОРЧЕСКАЯ АКАДЕМИЯ В КЛИНУ Потрясающий творческий подарок под конец учебного года сделало Министерство культуры МО нашим студентам. Делегация из двенадцати студентов и четырех концертмейстеров провела незабываемую неделю в городе, пропитанном музыкой и творчеством — мы приняли участие в Международной творческой академии в рамках Международного фестиваля искусств имени П.И. Чайковского в Клину. Пять дней работы с великолепными преподавателями — Лауреатами конкурса Чайковского разных лет, профессорами МГК имени П.И. Чайковского, концертирующими исполнителями — станут для наших ребят колоссальным толчком в профессиональном росте. Ежедневные творческие встречи с писателями, мастерами мультипликации, исполнителями, и ежевечерние концерты фестиваля — все это действительно погрузило нас во Вселенную Чайковского! Огромная благодарность всем причастным!

Кратко ?

Среди фиктивных объектов можно выделить две группы: моки и стабы.

Стабы (англ. stub) заменяют объекты, но сами ничего не проверяют. Их реализация простая, а зачастую — даже ничего не делает вовсе. Стабы нужны, чтобы заменить собой зависимость в системе и упростить окружение для тестов.

Моки (англ. mock) тоже заменяют зависимости, но при этом позволяют проверять предположения. Они могут следить за вызовами методов, аргументами этих вызовов и т. д. Моки удобны при тестировании функций с побочными эффектами.

Фиктивные объекты можно представить как беговые дорожки, которые заменяют собой настоящий большой парк. Только стабы — это дорожки попроще: крутящаяся лента без дисплея и настроек; а моки — дорожки, которые следят за темпом, ускорением, сердцебиением и т.д.

Мóки ?

У моков задача чуть шире, чем у стабов. Они не только заменяют зависимость функции, но ещё и следят, как функция эту зависимость использует.

Если тестируемая функция не возвращает результат, единственный способ проверить её работу — посмотреть, как она повлияла на окружение. Моки следят за изменениями и позволяют сравнить новое состояние с ожидаемым.

Вспомним функцию :

Для конечного пользователя её задача выглядит как:

Но с точки зрения самой функции её задача — вызвать метод на объекте и поменять значение поля . Именно это и можно проверить с помощью моков:

Вместо того, чтобы создавать настоящий объект приложения с DOM, окружением, классами и вот этим всем, мы заменили его моком с 2 полями.

Когда функция вызовет метод , мы проверим, сколько раз этот метод был вызван и с какими аргументами. Также убедимся, что второе поле было изменено на ожидаемое значение.

Этого достаточно, чтобы проверить, как модули общаются друг с другом. Окружение для теста при этом остаётся максимально простым.

Необходимость явных контрактов

Мок предназначен для замены реального объекта, а значит будет эффективен только в том случае, когда поведение реального объекта определено явно. Иначе, вы можете оказаться в ситуации, когда мок начнет становиться все сложнее, увеличивая зависимость между тестируемыми компонентами. Без явного контракта заметить это будет сложно.

Мы уже имеем три реализации Twitter API и лучше сделать их контракты явными. В Elixir описать явный контракт можно с помощью :

Теперь добавьте в каждый модуль, который реализует этот контракт, и Elixir поможет вам создать ожидаемый API.

В Elixir мы полагаемся на такие behaviours постоянно: когда используем Plug, когда работаем с базой данных в Ecto, когда тестируем и так далее.

Московский Губернский колледж искусств

141406, Московская область, г. Химки, ул. Библиотечная, д. 10

Контакты +7 (495) 570-24-66, (495) 570-21-38, (495) 570-65-84
Тип

Тип учебного заведения

университет – имеет широкий спектр направлений обучения. Готовит специалистов для самых разных видов деятельности. Ведет серьезную научно-исследовательскую деятельность;

академия – выпускает специалистов, обычно, для одной отрасли хозяйства. Пример: сельскохозяйственная академия, горная академия, экономическая академия и т.п.

институт – обучение ведется по одной специальности. Научную деятельность, институт, ведет по собственному усмотрению. Пример: педагогический институт.

колледж – реализует программы среднего профессионального образования базовой и углубленной подготовки. Срок обучения в колледже составляет 3 года (по некоторым специальностям – 2 года), и 4 года – по углубленной подготовке.

техникум – реализует программы среднего специального образования базового уровня. Срок обучения составляет 3 года, а по некоторым специальностям 2 года. В советское время техникумы назывались училищами.

Профессиональная образовательная организация
Форма, вид

В России существуют следующие формы собственности учебных заведений: государственные (муниципальные, федеральные);

негосударственные (учредители — юридические или физические лица).

Независимо от формы собственности, все аккредитованные учебные заведения имеют равные права на выдачу дипломов государственного образца и отсрочку от призыва на срочную военную службу.

Государственное образовательное учреждение, колледж

Профиль
Культуры и искусств

Примечания

Я бы хотел закончить эту статью разбором нескольких общих проблем, которые всплывают практически в каждом обсуждении моков.

Создание «тестируемого» кода

Цитата из :

Я бы сказал, что речь идет не о создании «тестируемого» кода, а об улучшении дизайна .

Тест — это пользователь вашего API, как и любой другой код, который вы пишите. Одна из идей TDD заключается в том, что тесты — это код и ничем не отличаются от кода. Если вы говорите: «Я не хочу делать мой код тестируемым», это означает «Я не хочу уменьшать зависимость между компонентами» или «Я не хочу думать о контракте (интерфейсе) этих компонентов».

Нет ничего плохого в нежелании уменьшать зависимость между компонентами. Например, если речь идет о модуле работы с URI . Но если мы говорим о чем-то таком же сложном, как внешнее API, определение явного контракта и наличие возможности заменять реализацию этого контракта сделает ваш код удобным и простым в сопровождении.

Кроме того, оверхэд минимален, так как конфигурация Elixir-приложения хранится в ETS, а значит вычитывается прямо из памяти.

Локальные моки

Хотя мы и использовали конфигурацию приложения для решения проблемы с внешним API, иногда проще передать зависимость как аргумент. Например, некоторая функция выполняет долгие вычисления, которые вы хотите изолировать в тестах:

Можно избавиться от зависимости, передав её как аргумент. В данном случае будет достаточно передачи анонимной функции:

Тест будет выглядеть следующим образом:

Или, как было описано ранее, можно определить контракт и передать модуль целиком:

Изменим тест:

Вы также можете представить зависимость в виде data structure и определить контракт с помощью protocol.

Передать зависимость как аргумент намного проще, поэтому, если возможно, такой способ должен быть предпочтительнее использования конфигурационного файла и .

Мок — это существительное

Лучше думать о моках как о существительных. Вместо того, чтобы мокать API (мокать — глагол), нужно создать мок (мок — существительное), который реализует необходимый API.

Большинство проблем от использования моков возникают, когда они используются как глаголы. Если вы мокаете что-то, вы изменяете уже существующие объекты, и зачастую эти изменения являются глобальными. Например, когда мы мокаем модуль , он изменится глобально:

При использовании мока как существительного, вам необходимо создать что-то новое, и, естественно, это не может быть уже существующий модуль . Правило «мок — это существительное, а не глагол» помогает находить «плохие» моки. Но ваш опыт может отличаться от моего.

Библиотеки для создания моков

После прочитанного у вас может возникнуть вопрос: «Нужно ли отказываться от библиотек для создания моков?»

Все зависит от ситуации. Если библиотека подталкивает вас на подмену глобальных объектов (или на использование моков в качестве глаголов), изменение статических методов в объектно-ориентированном или замену модулей в функциональном программировании, то есть на нарушение описанных выше правил создания моков, то вам лучше отказаться от неё.

Однако, есть библиотеки для создания моков, которые не подталкивают вас на использование описанных выше анти-паттернов. Такие библиотеки предоставляют «мок-объекты» или «мок-модули», которые передаются в тестируемую систему в качестве аргумента и собирают информацию о количестве вызовов мока и о том, с какими аргументами он был вызван.

О колледже

Московский областной колледж искусств – это автономное учебное заведение столицы, которое предоставляет своим выпускникам дипломы об получении среднего профессионального образования. Колледж является одним из тех заведений, где успешно реализуются учебные программы в сфере искусства и культуры. Считается, что датой появления колледжа следует считать 1948 год, когда на его нынешней территории была открыта первая просветительская школа, которая готовила будущих клубных работников. С средины 90-х годов учреждение начинает подготовку кадров по многим музыкальным направлениям. А с 2005 года было открыто и направление по подготовке артистов балета.

Продолжительность обучения

  1. Для отделения режиссуры, театра и хореографии, срок обучения составит 3 года и 10 месяцев на базе 9 или 11 классов. Колледж проводит углубленное изучение таких дисциплин, как фольклорный театр, современный танец, хореография. Форма обучения по данным направлениям – только очная.
  2. Для отделения актерского мастерства срок обучения составит 3 года и 10 месяцев на базе 9-11 классов общеобразовательной школы. После окончания данного отделения выпускник получает специальность актера драматического театра и кино. Форма обучения – очная.
  3. На музыкальном отделении длительность обучения составляет 3 года и 10 месяцев на базе 9-11 классов. Здесь ведется подготовка исполнителей по таким классам, как скрипка, фортепиано, виолончель, альт, а также обучение игре на народных инструментах. Кроме того, здесь готовят специалистов по хоровому дирижированию, вокальному и эстрадному искусству. Форма обучения – очная.
  4. По специальности «библиотековедение и менеджмент» продолжительность обучения составляет 1 год и 10 месяцев на базе 11 классов. Образовательная программа реализуется в заочной форме.

Чем проще — тем лучше ?

Главное правило при работе с фиктивными объектами:

Чем меньше инфраструктуры для тестирования и объектов, за которыми надо следить и обновлять, тем быстрее и проще будет проходить работа с тестами.

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

Следить за размером тестового кода и инфраструктуры помогает TDD. По этой методологии мы сначала пишем тест, а только потом реализацию. Это помогает сразу проектировать API так, чтобы тест не оказался сложным.

Стабы ?

Хороший тест должен быть быстрым, изолированным и воспроизводимым. Чтобы выполнить эти требования фиктивные объекты должны быть максимально простыми. Стабы как раз такие.

Они предоставляют интерфейс объекта, который заменяют, но их реализация гораздо проще. Часто — их методы не делают никаких вычислений, а сразу возвращают нужное значение.

Объект в примере выше предоставляет метод , но возвращает не случайное число, а конкретное значение. Если мы подменим настоящий на , метод будет возвращать всегда то число, которое нам нужно:

Задача стаба — избавить нас от подготовки и работы с настоящей зависимостью. Это экономит время, когда тестируемая функция зависит от сложных настраиваемых объектов.

Чтобы не приводить настоящий объект в нужное состояние, мы «подмешиваем» заменитель, который имитирует такое состояние. Для тестируемой функции ничего не меняется, но тест становится проще и короче.

Особенности и преимущества колледжа

Обучение в Московском областном колледже искусств имеет ряд существенных достоинств. Вот некоторые из них:

  • многопрофильность ССУЗа. Колледж готовит будущих директоров домов культуры, библиотекарей, художественных руководителей творческих коллективов, актеров всех жанров, директоров школ, музыкантов, певцов, специалистов по менеджменту в социально-культурной сфере,
  • удачное расположение учреждения. Колледж находится в нескольких километрах от Москвы,
  • особая творческая атмосфера и культурная среда,
  • приобщение молодежи к культурным центрам страны,
  • специально оборудованные аудитории и классы для творческих занятий, наличие необходимых технических средств, музыкальных инструментов,
  • сплоченный преподавательский коллектив.

Форма обучения: Очная, Заочная, Очно-заочная

Вид обучения: Платное, Бесплатное

Стоимость обучения: 46300 — 57200 рублей в год

Обучение производится на базе 9 или 11 классов

Курсы: подготовительные курсы начинают работу с 12 октября 2015 года

Дни открытых дверей: 5 ноября 2015 года

Специальности:

Экзаменационные предметы:

математика, русский язык

https://youtube.com/watch?v=%2522.%2524code.%2522

Тестовые данные и инфраструктура ?

Для тестов нам также требуются данные, которые мы передаём функциями как аргументы.

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

Бывает полезно заранее создать (или сгенерировать) данные для стандартных сущностей типа пользователя, товара, настроек и т. д., а в тестах использовать их копии. Это делает код тестов чище и короче, а ещё может пригодиться при генерировании документации.

Для данных с намеренными ошибками полезно выносить эти ошибки в названия переменных, чтобы в коде тестов было видно, какие именно данные мы используем:

То же применимо для стабов и моков. Мы можем создать хранилище фиктивных объектов для проекта, которые потом будем импортировать в код конкретных тестов, переопределяя необходимые для теста методы.

Для генерации простых данных типа почты и почтовых индексов можно также использовать дополнительные инструменты.

В Московском губернском колледже искусств 15 апреля пройдет День открытых дверей

РИАМО — 13 апр. Московский губернский колледж искусств 15 апреля проведет для выпускников и абитуриентов День открытых дверей в подмосковных Химках, гости учебного заведения смогут посетить выставку декоративно-прикладного искусства и узнать об условиях поступления в колледж, а также посмотреть праздничный концерт, говорится в сообщении пресс-службы министерства культуры Московской области.

«В здании учебно-творческого центра Московского государственного института культуры (Химки, улица Библиотечная, дом 9) 15 апреля с 12 часов утра абитуриенты смогут получить консультацию ведущих преподавателей Губернского колледжа, посетить выставку декоративно-прикладного искусства и народных промыслов, которая будет представлена Талдомским и Рузким филиалами МГКИ», — отмечается в сообщении.

Также студенты Губернского колледжа искусств готовят традиционный праздничный концерт, в котором принимают участие творческие коллективы народного и современного танца, камерный оркестр струнных инструментов, солисты академического и эстрадного вокала, сводный академический хор. Украшением концерта станет номер, подготовленный Красногорским филиалом (хореографическое училище МГКИ), в котором солирует лауреат международных конкурсов Алина Борисова.

«В этом году колледжу исполняется 70 лет, но он остается местом притяжения талантливой молодежи со всей страны. Колледж сочетает в себе инновационные образовательные технологии, традиции классического образования и творческую атмосферу. Его студенты становились победителями международных, всероссийских и региональных конкурсов, служат в ведущих театрах страны», — сказала министр культуры Московской области Оксана Косарева.

По ее словам, Губернский колледж искусств дал путевку в жизнь звездам современного театра балета: Алиса Асланова — ведущая солистка Московского областного государственного театра балета «Русский балет», Антон Хабаров — артист Московского губернского театра, Ирина Ортман — солистка группы «Тутси», финалистка всероссийского телевизионного конкурса «Фабрика звезд», Анна Тихая — финалистка проекта «Танцы на ТНТ».

Увидели ошибку в тексте? Выделите ее и нажмите «Ctrl+Enter»

КАДРЫ РЕШАЮТ

– Все выпускники работают по специальности, – говорит Татьяна Надаховская. – Многие стали преподавателями в образовательных учреждениях, имеют звания профессоров.

Выпускник колледжа Семен Лиманов – вокальный эксперт мирового шоу «Ну-ка, все вместе» на одном из федеральных телеканалов. Он вернулся в МГКИ, чтобы заниматься с учениками.

– Я сам много где учился и знаю много учебных заведений, – говорит Семен. – Наш колледж – лучший в стране!

– Еще у нас есть гениальный преподаватель Максим Федоров, – продолжает Надаховская. – Он эксперт и наставник шоу «Синяя птица». И с 2005 года ведет у нас класс баяна и аккордеона.

Важные показатели и ценные кадры – это, конечно, успех. Но еще важнее – душевность в коллективе. И этим колледж точно может похвастаться.

– Наши педагоги для каждого студента как вторые папа и мама, – говорит Татьяна Надаховская. – Они курируют не только то, как студент выучил программу, но и то, что происходит у него дома, что у него с девушкой или как он живет в общежитии. В принципе, атмосфера в колледже такая, что мы как одна большая семья!

Заключение

Одна из задач тестирования системы — нахождение правильных контрактов и границ между компонентами. Использование моков только в случае наличия явного контракта позволит вам:

  1. Защититься от засилья моков, так как контракты будут создаваться только для необходимых частей системы. Как было упомянуто выше, вряд ли вы захотите прятать взаимодействие со стандартными модулями и за контрактом.
  2. Упростить поддержку компонентов. При добавлении новой функциональности к зависимости, вам нужно обновить контракт (добавить новый в Elixir). Бесконечный рост укажет на зависимость, которая берет на себя слишком много ответственности, и вы сможете раньше расправиться с проблемой.
  3. Сделать вашу систему пригодной для тестирования, потому что взаимодействие между сложными компонентами будет изолировано.