Допустимо ли иметь бесполезный код? - PullRequest
8 голосов
/ 02 декабря 2009

Я вижу, что некоторые программисты добавляют код, который, в конце концов, не делает ничего полезного. Например (C #):

[Serializable]
class Foo {
    // ...
    string SerializeMe() {
        return new XmlSerializer(typeof(this)).Serialize(this).ToString(); // serialize to xml (syntax wrong, not important here)
    }
}

Класс помечен как Сериализуемый, но единственный способ его сериализации - с помощью XmlSerialization, который вообще не требует этот атрибут класса.

Лично я ненавижу этот бесполезный код, но вижу его довольно часто, и мне интересно, что другие думают об этом. Разве это не такой серьезный недостаток в конце концов? Это обычная практика в отрасли? Или это просто плохо и должно быть удалено, несмотря ни на что?

Ответы [ 12 ]

18 голосов
/ 02 декабря 2009

Good Source Control означает, что бесполезный код или код, который больше не требуется, должен быть удален. Его всегда можно получить из системы контроля версий позднее.

10 голосов
/ 02 декабря 2009

Мое эмпирическое правило,

Если его не использовать, избавьтесь от него.

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

5 голосов
/ 02 декабря 2009

Я стараюсь следовать принципу ЯГНИ , так что это меня тоже беспокоит.

4 голосов
/ 02 декабря 2009

Действительно не нравится.

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

4 голосов
/ 02 декабря 2009

Требуется ли даже минимальное усилие, чтобы прочитать этот дополнительный (бесполезный, как вы добавили) код?

Если да (и я думаю, что это так), то это не должно быть в коде. Подобный код загрязнен дополнительными фрагментами, которые бесполезны, они есть "на всякий случай".
«Последующий рефакторинг» этих вещей может быть болезненным, через 6-12 месяцев, кто вспомнит, действительно ли это использовалось?

2 голосов
/ 03 декабря 2009

Бесполезный однострочный код можно и нужно удалить.

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

(Да, теоретически вы можете вывести его из-под контроля исходного кода, но старый удаленный код в контроле исходного кода точно не обнаруживается.)

1 голос
/ 02 декабря 2009

Казалось бы, совершенство достигается не тогда, когда больше нельзя добавить, но когда больше нельзя удалить. & Mdash; Антуан де Сент-Экзюпери

1 голос
/ 02 декабря 2009

Это плохой код.

Плохой код является обычной практикой.

При этом иногда говорят, что не стоит усилий по изменению того, что не "сломано".

1 голос
/ 02 декабря 2009

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

1 голос
/ 02 декабря 2009

В коммерческом проекте - я бы сказал, нет, особенно если кто-то может разобрать его для чтения, а затем у него есть момент WTF.

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

...