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

Может быть, вы не так велики, как думаете (многие из нас таковыми не являются).

«Технический долг — это метафора, придуманная Уордом Каннингемом, которая показывает, как думать о том, как справиться с этим хламом, думая о нем как о финансовом долге. Дополнительные усилия, необходимые для добавления новых функций, — это проценты, выплачиваемые по долгу».

Мартин Фаулер

Это не ты, это технический долг

Большая часть нашей работы как программистов вымощена потребностями заинтересованных сторон. Клиент обычно хочет чего-то в последний момент, и разговор заканчивается словами: «Просто сделайте это до Y (невообразимый срок), иначе мы начнем терять деньги».

Вам нужно выбрать «быстрый путь».

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

Вы наверняка будете развлечены, когда поступит следующий запрос функции.

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

"Рефакторинг – это упорядоченный метод реструктуризации существующего кода с изменением его внутренней структуры без изменения внешнего поведения".

Мартин Фаулер

Оплатите долг с помощью рефакторинга

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

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

Вы должны начать с этого,

  • Правильно называйте свои переменные и функции.
  • Извлечение каждого шага логики в функцию.
  • Держите его СУХИМ и удаляйте повторяющийся код.

Первоначально опубликовано на https://blog.rishpandey.com.