Хардкоднутая дата в будущем - пофигизм?


6 0

Не первый раз вижу, что в коде делают заранее определенную дату, видимо проблема 2000-го года ничему людей не научила. Мне кажется, что это наплевательское отношение, когда использую и заранее определённую дату. 

Сейчас у нас на работе везде используется 01.01.2050. В принципе, через 30 лет я уже точно буду на пенсии и исправить эту дате не так уж и сложно, если все будут использовать только ее и никто случайно (или намеренно) не станет использовать другую дату в будущем.

В SQL очень часто можно увидеть код типа: 

Date < isnull(EndDate, ‘01.01.2050’)

А ведь можно было написать что-то типа:

isnull(EndDate, dateadd(day, 1, getdate())

И все, этот код можно использовать вечно. 

На мой вкус использование заранее определённых дат - это пофигизм. Я понимаю, что для нашего продукта 30 лет жизни будет уже очень много и теоретически. . . указывать 2050-й год можно, но все же мне не очень нравится такой код. Ну не красиво это.  

Как ты относишься к хардкоднутым датам/значениям?


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

Евгений 1

06 Августа 2019

Мы применяем к примеру такой хард код where L.REG_DATE between COALESCE(TO_DATE(P_DATE_BEG, 'dd.mm.yyyy'), TO_DATE('01.01.0001', 'dd.mm.yyyy'))
         and COALESCE(TO_DATE(P_DATE_END, 'dd.mm.yyyy'), TO_DATE('31.12.9999', 'dd.mm.yyyy'))


Александр Р.

06 Августа 2019

У меня на работе начальник уволился. Его программа работала без него. А 4 января мне звонят, говорят, не работает. Прихожу, а программа пишет "Лицензия кончилась". Хорошо, что у меня были исходники, я убрал эту проверку. Вот такая история с датой 01.01.


Александр Р.

06 Августа 2019

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


Александр Р.

06 Августа 2019

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


Денис

06 Августа 2019

Тоже использую дату 01.01.2050, и правда в том, что мне реально пофиг. 30 лет для моего продукта это очень много.


Adasan

12 Августа 2019

Может и очень большой. Но как по мне, так лучше такого не допускать хотя бы чисто из-за вероятности, что в будущем кто-то да решит сделать историю ПО. Если всё не криво, то лишний источник для них может быть.


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

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

Обратная связь

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

Пишите мне