Code WTF #3

Сьогодні ще цікавого надибав:

bool test = (mail.Find('@') == -1);
if(tsInspireDate.GetDays()<15 && !active && (mail.Find('@') == -1))
{ /* ...skipped... */ }

І ніби ж не індуси…

P.S. Хоча, звісно, всяке буває… Я і у себе в коді, що часто перероблювався, якось перли знаходив (коли один дрібний фрагмент змінюєш, а попередній шматок коду, що його дублює забуваєш видалити).

 

Comments

в чому прикол? інгріш?

ні. змінна test ініціалізується булевим значенням, яке вказує на ненаявність символу “@” в рядку, але в порівнянні підставлено той самий код, що і для ініціалізації, а сама змінна test ні тут, ні надалі по коду взагалі не використовується.

ну то й що – код же виконується? а “загублені” змінні – це звичайна річ, з них же воду не пити…

Виконується. Просто загублені – так, трапляютсья. Але одна під іншою – це трохи дивно виглядає.

Ех.. Не все що ти не розумієш, то фігня.
Змінна test – явно для дебагу. Незрозуміло трохи чому автор не вніс її в if.
Якщо це розумна мова, то 1) буде варнінг.
2) компілятор відкине цю змінну при реліз зборці.

Дебажному коду не місце в релізній збірці. Його або не тре забувати прибирати, або принймні оточувати "#ifdef _DEBUG", якщо його плнануєтсья використовувати далі.

P.S. Якби це було одне подібне місце – все було б нічого, з ким не буває… Але ж їх там було багато.

Leave a comment

(required)

(required)