Примеры того, как сначала неправильно, намеренно


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

Общая практика заключается в том, чтобы сначала намеренно сделать что-то неправильно, чтобы убедиться, что все остальное правильно, прежде чем приступить к текущей задаче.

В частности, я пытался найти примеры в нашей базе кода, где текстовая область dojo виджет был использован. Я знал (потому что он был передо мной - доказательство существования), что виджет TextBox присутствует по крайней мере в одном файле. Поэтому я сначала искал то, что, как я знал, было там:

Цифра Grep-R.форма.Текстовое поле / grep-v svn

Это было неправильно - я сделал обычную (для меня) ошибку, оставив звезду, поэтому я исправил это:

Цифра Grep-R.форма.Текстовое поле * / grep - v svn

Который не нашел никаких результатов! Быстрое сравнение с файлом I смотрел на показал мне, что я неправильно написал "dijit":

Grep-r dijit.форма.Текстовое поле * / grep - v svn

И вот я получил результаты. Круто; делать это неправильно сначала нарочно означало, что мой запрос был правильным, за исключением поиска неправильной вещи, так что теперь я мог построить правильный запрос:

Grep-r dijit.форма.Текстовое поле * | грэп - v svn

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

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

7 4

7 ответов:

TDD

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

Http://support.microsoft.com/kb/275085

Эта процедура на VBA выключает "подтаблиц" собственность для каждой таблицы в вашей базе данных MS доступа. Пользователь должен убедиться, что обработка ошибок настроена на "прерывание только при необработанных ошибках."Процедура определяет таблицы, нуждающиеся в исправлении, по ошибке, которая выбрасывается. Я не уверен, что это точно соответствует вашему вопросу,но мне всегда интересно, что ошибка используется без ошибок.

Вот пример из VBA :

Я также использую camel case, когда я затемняю свои переменные. ThisIsAnExampleOfCamelCase. Как только я выхожу из строки кода VBA, если Access не изменяет переменную нижнего регистра на camel case, я знаю, что у меня есть опечатка. [Или параметр Exclusive не задан,что является темой сообщения.]

Я тоже использую этот трюк, по крайней мере, несколько раз в час.

Аранжировать - утверждать - действовать-утверждать

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

Когда сомневаюсь в моей орфографии, и проверки орфографии моего редактора

Мы используем множество редакторов. Многие из них выделяют неправильно написанные слова, когда я их печатаю, - некоторые нет. Я полагаюсь на автоматическую проверку орфографии, но не всегда могу вспомнить, есть ли у редактора момента такая функция. Так что я войду, скажем, в "circuitx" и нажму пробел. Если он высвечивается, я сделаю резервную копию над пробелом и "x" и наберу другой пробел - и узнаю, что я правильно написал схему - но если это не так, Я скопирую Слово и вставлю его в известную проверку орфографии, чтобы посмотреть, сделал ли я это.

Я не уверен, что это лучший способ действовать, так как это не мешает вам неправильно написать последнюю команду, например, набрав "TestArea" или что-то в этом роде вместо "TextArea" (ваш палец просто должен немного скользить для такой ошибки).

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

Другими словами, вместо выполнения команды" similar", выполните реальную команду, но поверх " similar" данные.

(Не уверен, что это хорошая идея, чтобы попробовать по-настоящему!)

Например, вы можете предоставить систему пользователям для тестирования и сообщить им пароль Для начала работы - "Apple".

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