Как долго длится код? - PullRequest
       70

Как долго длится код?

40 голосов
/ 14 декабря 2009

Я возвращаюсь к некоторым из более мелких TODO в моем коде. Один из них находится в классе, который обрабатывает неполные даты, например, Январь 2001. Он отлично работает для дат, которые будут видны в нашей системе (1990 - 2099 гг.), И корректно завершится неудачей для других дат.

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

Так как долго длится код? Как далеко мы должны планировать, чтобы наши системы продолжали работать?

Обновление

Хорошо, спасибо за ваш вклад. Я думаю, что я собираюсь оставить вариант TODO в коде и ничего не делать. Мысли, которые я нашел наиболее интересными, были:

  • @ Адриан - Вечность, я думаю, что это наиболее правильное предположение, ваша точка зрения на ВМ хорошая.
  • @ jan-hancic - Это зависит, да, это так.
  • @ chris-ballance - я предполагаю, что я умру к тому времени, когда будет введено это ограничение, поэтому они могут осквернить мою могилу, если захотят, но я буду мертв, поэтому я буду преследовать его жопа.

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

Ответы [ 24 ]

0 голосов
/ 26 февраля 2010

В 1995 году я начал работать на новой работе, на базе 8-летнего кода. Так что дата начала была 1987 или около того.

Код, вероятно, все еще работает . Это то что ? 23 года.
Были некоторые шаги компании, но они, вероятно, сохранили программное обеспечение (потому что оно работает) Если он все еще находится в эксплуатации, он все еще будет в эксплуатации через десятилетие или около того.

Это не удивительно, особенно высокотехнологичный код, в C (в основном)

В 1999 году я начал работать на новой работе, кодовая база имела антецеденты еще в 1984 году. Новая версия, которую я разработал в 2000-х годах, все еще находится в эксплуатации, с элементами дизайна, такими как форматы файлов данных из предыдущего (и т. Д. Назад), и это будет программа разработки на протяжении 26 лет.

Таким образом, проблема 2086 года начинает вырисовываться, когда эти 32-битные подписанные time_t переворачиваются.

0 голосов
/ 14 декабря 2009

ИМХО, все сводится к мастерству: гордость за свою работу, кодирование по стандарту, нам не будет стыдно видеть другого настоящего программиста.

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

0 голосов
/ 24 августа 2012

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

0 голосов
/ 14 декабря 2009

Существуют примеры кода, работающего на старых машинах, которому 40 или 50 лет.

(Интересные биты в этой теме: http://developers.slashdot.org/developers/08/05/11/1759213.shtml).

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

Еще одна вещь, о которой вам нужно подумать:

1) Что такое «активная жизнь» приложения - то, где оно будет использоваться и обрабатываться.

2) Что такое «неактивная жизнь» приложения - то есть оно не будет использоваться изо дня в день, но может использоваться для извлечения и просмотра старых записей. Например, закон Великобритании об аудите означает, что записи должны быть доступны в течение 7 лет, так что это потенциально 7 лет с момента последнего использования системы.

3) Какой диапазон будущих данных должен обрабатывать? Например, скажем, вы снимаете даты истечения срока действия кредитной карты - у вас может быть карта, срок действия которой не истекает в течение десяти лет. Вы можете справиться с этой датой?

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

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