Почему «дым и зеркала» являются анти-паттерном? - PullRequest
3 голосов
/ 26 февраля 2011

Я недавно читал Список анти-паттернов Википедии и заметил, что он был включен:

Дым и зеркала: демонстрация того, как будут реализованы нереализованные функции

Почему это плохо?Единственное, что я могу видеть, это то, что если вы никогда не удосужились реализовать указанную функцию.А что, если функция в формальной спецификации «гарантированно» будет завершена?Было бы все еще плохо делать, чтобы показать потенциальным клиентам, на что они будут способны?

Ответы [ 5 ]

6 голосов
/ 26 февраля 2011

Чтобы узнать, почему дым и зеркала являются антипаттерном, взгляните на запись Smoke and Mirrors Википедии. Из статьи:

Дым и зеркала - это метафора для обманчивый, мошеннический или несущественный объяснение или описание. Источник Название основано на магах иллюзии, где делают маги объекты появляются или исчезают выдвигая или убирая зеркала на фоне запутанный взрыв дыма. Выражение может иметь оттенок виртуозность или сообразительность в ношении такой обман.

В области компьютерного программирования, он используется для описания программы или функциональность, которой еще нет, но выглядит так, как будто это так (ср. фантомное). Это часто делается для продемонстрировать, что в результате проекта будет функционировать / выглядеть после кода завершено - на выставке, для Пример.

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

Часто дым и зеркала используются для того, чтобы поразить руководство или клиентов демонстрацией, чтобы получить / сохранить финансирование, но под ним нет реального кода. Это работает какое-то время, но, в конечном итоге, приводит к появлению других анти-паттернов (спагетти-кода, блоба и т. Д.), Чтобы попытаться получить что-то реальное, как только об этом действительно попросят.

Проекты, которые начинаются как Дым и Зеркала, обычно заканчиваются ужасно. Как и отношения, если вы разрабатываете свой код на лжи, в конце концов, все рухнет.

2 голосов
/ 26 февраля 2011

Дым и зеркала, кажется, отличаются от макета.

Дым и зеркала были бы, если при реализации чего-то вроде калькулятора вы кодируете все методы сложения, вычитания, умножения и деления, но все более продвинутые функции возвращают случайным образом, как будто выполняют свою работу.Управление oohs и aahs на длинной цепочке цифр.

1 голос
/ 03 марта 2011

Хотя ряд ответов намекали (как мне кажется) на реальную проблему, ни один из них не дал ее прямо.

Истинная причина, по которой «дым и зеркала» - это анти-паттерн, заключается в том, что он путает различие между прототипом и готовым продуктом. Создание прототипа прекрасно. Одна из главных проблем, с которыми сталкиваются многие (большинство?), - это менеджеры, которые говорят что-то вроде: «Ну, кажется, это работает достаточно хорошо, давайте отправим это».

Создание прототипа, как правило, хорошо - , но вы всегда должны быть предельно осторожны как внутри, так и (особенно) с внешним миром, чтобы понять, что он является прототип, а не готовый продукт. Руководство, как правило, хочет верить, что прототип является готовым продуктом (или, по крайней мере, может сформировать основу одного) в любом случае. Поощрение такой веры - действительно плохая вещь.

1 голос
/ 26 февраля 2011

Если вы перейдете по ссылке для Smoke and Mirrors , вы увидите этот фрагмент:

В области компьютерного программирования он используется для описания программы или функциональности, которая еще не существует, но выглядит так, как будто она существует (см. Vapware). Это часто делается для того, чтобы продемонстрировать, как будет функционировать / выглядеть итоговый проект после завершения кода - например, на выставке.

Это опасно, потому что в нашем мире НИЧЕГО может измениться.

1 голос
/ 26 февраля 2011

Потому что слишком часто это 90% маркетинга, 10% управления и 0% развития.

Недообещание, сверхдоставка. Не наоборот.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...