как вы называете это антипаттерном?

В базе данных у вас есть таблица с битовым полем, позвольте называть это поле Активным

В приложении у вас есть логическая переменная, назовите ее NotActive.

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

NotActive = !mytable.active;

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

control.enabled = !mytable.Enable_yes_no

Лучшей практикой было бы сохранить то же имя и то же значение, но шаблон выше, как вы это называете?


person Fredou    schedule 06.10.2009    source источник
comment
Это не шаблон. Шаблоны - это описание передового опыта в различных ситуациях. Это плохое программирование, в лучшем случае антипаттерн.   -  person Lazarus    schedule 06.10.2009
comment
изменен тег и заголовок на анти-шаблон   -  person Fredou    schedule 06.10.2009
comment
@Sinan, я откатываю вашу модификацию, потому что одновременно редактировал свой вопрос. Просто обновите мой обновленный вопрос   -  person Fredou    schedule 06.10.2009


Ответы (5)


Я бы не стал называть логические переменные отрицательным префиксом.

Назовите переменную IsActive или Active, присвоив ей имя NotActive - двойное отрицание.

Редактировать / Уточнение:

Если вам нужно проверить, активна ли вещь, вам понадобится двойное отрицание:

If (!NotActive) { DoSomething() }

Положительные логические имена переменных намного легче понять:

If (isActive) { DoSomething() }
person Daniel Kreiseder    schedule 06.10.2009
comment
Двойные переговоры? Вы имеете в виду двойное отрицание? - person George Stocker; 06.10.2009
comment
+1: Я тоже собирался это сказать. Вызов переменной NotXXX - плохой шаблон. Хорошая точка зрения. Лучшее название было бы Disabled. - person Scott Whitlock; 06.10.2009
comment
Просто переименуйте переменную IsNotNotActive. Теперь логика снова положительная. - person Ryan Michela; 06.10.2009
comment
NotActive - это не двойное отрицание, это простое отрицание. NotInactive было бы ближе к двойному отрицанию. - person Frerich Raabe; 06.10.2009

Обфускация по замыслу?

person Community    schedule 06.10.2009
comment
Недесобфукация с помощью sorta-design, также известная как NDeso_DesgnPoo - person mjv; 06.10.2009

Обратная совместимость с существующими базами данных?

person Alex Reitbort    schedule 06.10.2009
comment
Извини, Алекс, но ты серьезно? - person Lazarus; 06.10.2009

Он широко известен как «неотрицательный паттерн смешения спагетти» и впервые был упомянут в 1972 году ;-) SCNR

person arno    schedule 06.10.2009

Я думаю, что проблема здесь в архитектуре, а не в конкретном именовании данных. Например, если вы использовали структуру сущностей, ваша сущность для этой таблицы могла бы объявить свойство под названием InActive и использовать столбец Active в качестве хранилища данных. Что касается внешнего мира, то перевод туда и обратно прозрачен.

person Scott Whitlock    schedule 06.10.2009