Как написать код с датой истечения срока действия? - PullRequest
36 голосов
/ 07 марта 2011

У меня только что была идея для чего-то, что я бы хотел использовать:

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

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

Есть предложения? Должно быть возможно выполнить - может быть, использовать какой-то сложный #IF или некоторые опции в visual studio? Я использую VS 2005 - в основном для C #.

Спасибо!

[РЕДАКТИРОВАТЬ]: Wow - никогда не ожидал, что этот вопрос вызовет такой большой интерес :) Спасибо всем за ваши ответы и за то, что превратили это в интересную дискуссию. Я знаю, что трудно оправдать использование чего-либо подобного - и я, вероятно, не буду его использовать, - но иногда, когда вам приходится поставлять версию YESTERDAY, и вместо этого вы обнаруживаете, что идете на компромисс по исправлению - вы хотите заставить себя исправить это в ближайшее время.

Я выбрал предложение MartinStettner в качестве ответа, потому что он отвечал моим потребностям - нет ошибок во время выполнения - только во время компиляции, нет необходимости определять новые типы только для этой цели - и это не ограничивается областью применения всего метода. Ура! * * 1013

Ответы [ 11 ]

0 голосов
/ 07 марта 2011

Обе ВРЕМЯ и ДАТА испускают строки, и, насколько я знаю, на этапе предварительной обработки невозможно разобрать их.

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

...