Ви ставите кілька запитань.
Чи варто нам оглядати брехливий код?
Звичайно!
Чи слід порівнювати [код] з будь-якою наявною документацією?
Це ніколи не зашкодить, хоча, як зазначено в інших відповідях, частіше за все це призведе до того, що ви знайдете проблеми в документації , а не в коді .
Або зазвичай [код] найкраще джерело для того, що він повинен робити?
Це завжди краще джерело для того, що він буде робити. Найкращим джерелом для того, який код слід робити, можуть бути (комбінація) різних речей, хоча основні з них:
- Сам код;
- Код виклику;
- Коментарі в цьому коді;
- Документація;
- Одиничні випробування;
- Інтеграційні та регресійні тести;
- Програміст;
- Кінцевий користувач;
Яке "найкраще" джерело (або їх комбінація) залежить від вашої ситуації.
Якщо він є спритним кодом, чи менше шансів брехати, чи цей код не може лежати зовсім?
Я не впевнений, що ви маєте на увазі під "спритним кодом", AFAIK "agile" зазвичай стосується процесу кодування. Припустимо, ви маєте на увазі "код, створений у процесі спритного програмування", тоді я думаю, що можна впевнено сказати, що він все ще може брехати. Наскільки це брехня, порівняно з кодом, створеним, наприклад, у проектах у стилі водоспад - суб'єктивна справа (особисто я не думаю, що це великий зв’язок).
Виноски
Все вищесказане висловлюється з припущення, що код може лежати і що це основний (хоча і трохи надуманий) приклад:
public int DivideByTwo(int input)
{
return input / 3;
}
Це лише один приклад, де я б сказав "код лежить", @ user61852 є кілька інших (недоступний код, складність коду, що не відповідає складності проблеми, неправильне іменування), і я думаю, що існує ще багато. У Вікіпедії є дещо гідне резюме брехні , у багатьох з них можна знайти код.
Зауважте, що якщо ви з кимось посперечаєтесь, будьте впевнені, що це означає не те, що "людина не може брехати", що "код робить те, що робить". По суті, інша людина тут визначає використання визначення для "брехні", яке є настільки вузьким, що може оголосити твердження "код не може брехати" як аксіома / основна істина. У цьому випадку, мабуть, найкраще погодитися з його аксіомою.