Поддержка кода так же важна, как и «реальный код». Качество вашего продукта определяется как поддержкой кода, так и всего остального.
Рассмотрим автомобиль. С точки зрения простого перемещения из пункта А в пункт Б, для этого требуется не более чем тележка: рама, сиденье, двигатель, несколько шин. Но современные автомобили имеют гораздо больше, чем просто основы. Высокоэффективные двигатели с использованием электронной системы газораспределения. Автоматические коробки передач. Ковшеобразные сиденья. Отопление и кондиционер. Реечный рулевой механизм. Силовые тормоза. Антиблокировочная система тормозов. Тихие, комфортабельные каюты защищены от непогоды. Подушки безопасности. Смять зоны и другие передовые функции безопасности. И т. Д. И т. Д.
Детали и исполнение важны, даже в программном обеспечении. Если вы обнаружите, что ваш «поддерживающий код» больше похож на клуджи и хаки, то пришло время переосмыслить ваш фундаментальный подход. Но, в конечном счете, качество и отделка определяют качество конечного продукта так же, как и все остальное.
Редактировать: Вопросы, которые вы должны себе задать:
Ваш "поддерживающий код" :
- Трубопровод зонтика, приклеенный к столбу или металлической и стеклянной раме кабины?
- Кусок трубы, привязанный к передней части автомобиля, или энергопоглощающий бампер, встроенный в зону деформации?
- Крюк на веревке, привязанной к раме, или 4-колесные антиблокировочные тормоза?
- Пара защитных очков и толстый слой или ветровое стекло и система отопления?
Ответы на эти вопросы, вероятно, будут влиять на то, насколько вы заботитесь о своем «вспомогательном коде».
Редактировать: Ответ на комментарий Дэйва Турви:
Я бы рекомендовал перечитать исходный вопрос, один из приведенных примеров «кода поддержки» - «обработка ошибок». Задумайтесь об этом на мгновение. Представьте это в контексте, скажем, автомобиля, микроволновой печи или даже операционной системы. Должна ли обработка ошибок быть отнесена к гражданству второго сорта, потому что она выполняет функцию поддержки в некотором абстрактном смысле? В автомобиле функции безопасности являются частью фундаментальной конструкции автомобиля и составляют существенную часть стоимости автомобиля. Функции безопасности и «обработка ошибок» микроволновой печи (в том числе встроенного программного обеспечения микроволновой печи) также являются важной частью ее ценности. Микроволновая печь, которая была неправильно экранирована, могла бы хорошо готовить пищу при правильных обстоятельствах, но это представляло бы опасность для оператора.
Неявный набор функций каждого инструмента (программного или иного) включает в себя этот список:
- Надёжность
- Юзабилити
- Производительность
Все, что кто-либо когда-либо создавал или использовал, имело эти функции. Неспособность понять это приведет к неэффективному выполнению этих функций, что приведет к низкому качеству продукта с низкой стоимостью и низким коммерческим интересом. Не существует такой вещи, как «код поддержки», есть только неправильное понимание природы того, что означает, что функция завершена. «Особенность», которая работает в абстрактном режиме только в лабораторных условиях, является экспериментом, а не частью продукта.
Идея чистых, нетронутых функций, плавающих на болоте грязного, уродливого кода поддержки, является неправильным образом разработки программного обеспечения. Вместо этого, подумайте об элегантном, великолепно интегрированном оборудовании, которое хорошо построено, интуитивно понятно и мощно.