Вы разрабатываете функцию в приложении отслеживания ошибок, назначающую пользователя в качестве основного лица, ответственного за продукт. В первоначальном проекте в качестве доверенного лица по каждому продукту допускается только один пользователь. Однако нет ничего удивительного, если вас попросят обеспечить поддержку назначения нескольких пользователей в качестве ответственных лиц по указанному продукту.
Что может бытть проще, чем изменение базы данных для хранения списка идентификаторов учетных записей пользователей, разделенных запятыми, вместо одного-единственного идентификатора.
Вскоре начальник обращается к вам с проблемой. «В техническом отделе добавляют персонал для работы над проектами. Они говорят, что могут добавить только пять человек. При попытке добавить больше выводится ошибка. Что происходит?»
Вы киваете: «Да, вы можете перечислять в проекте только определенное число людей», — причем так, как будто это очевидно.
Чувствуя, что начальнику требуется более внятное объяснение, вы добавляете: «Да, от пяти до десяти, возможно, несколько больше. Все зависит от того, насколько старой является каждая учетная запись». У начальника глаза лезут на лоб от удивления. Вы продолжаете: «Я храню идентификаторы учетных записей для проекта в виде списка с разделителями-запятыми. А список идентификаторов должен вмещаться в строку максимальной длины. Если идентификаторы учетных записей короткие, в список можно вместить большее число идентификаторов. Поэтому люди, создавшие более ранние учетные записи, имеют идентификатор, равный 99 или меньшему числу, и такие идентификаторы короче».
Ваш начальник хмурит брови. У вас возникает чувство, что вам придется задержаться на работе.
Программисты обычно используют списки с запятыми-разделителями, чтобы избежать создания таблицы пересечений для отношения «множество-множество». Я называю этот антипаттерн Блуждания без ориентиров, так как бесцельные блуждания также представляют собой действие, выполняемое во избежание столкновений.
Опубликовал vovan666
June 18 2013 12:24:16 ·
0 Комментариев ·
4171 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.