Магические функции, которые могут получать множество разных (и не полиморфных аргументов)

TL; DR: создайте четкий контракт. Ожидайте только одного протокола.

Проблемы

Решения

1. Используйте только один «вид» ввода.

2. Аргументы должны соответствовать единому протоколу.

Образец кода

Неправильный

Правильно

Обнаружение

Мы можем обнаружить такие методы, когда они делают разные вещи, запрашивая аргумент * kind *

Теги

  • Если загрязнитель

Вывод

Волшебные отливки и гибкость имеют свою цену. Они кладут мусор под ковер и нарушают принцип отказоустойчивости.

связи







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

Эдвард Гарсон



Эта статья является частью серии CodeSmell.



Как найти вонючие части вашего кода
Код плохо пахнет. Давайте посмотрим, как изменить ароматы. blog.devgenius.io