Что такое мертвый код?

Как программисты, вы, возможно, сталкивались с

  • код, который существует в кодовой базе, но никогда не выполняется во время выполнения.
  • код, который выполняется, но результат никогда не используется.

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

Как их идентифицировать?

Мертвый код может существовать в виде целых функций/методов. Иногда целые исходные файлы. Это также могут быть целые пакеты/модули. Это также может быть однострочный оператор или условие if, которое никогда не может произойти.

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

Что происходит, когда у вас валяется мертвый код?

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

Когда люди читают мертвый код,

  • Мозговые циклы тратятся впустую.
  • Смущает их.
  • Делаются неверные предположения
  • К ним добавляется ненужная сложность

Это также может повлиять на время сборки и время запуска в зависимости от его масштаба.

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

Резюме

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