Sie stellen mehrere Fragen.
Sollten wir nach Lügencode Ausschau halten?
Na sicher!
Sollten wir [Code] mit einer vorhandenen Dokumentation vergleichen?
Das könnte niemals schaden, obwohl dies, wie in anderen Antworten erwähnt, häufig dazu führt, dass Sie Probleme in der Dokumentation finden , nicht im Code .
Oder ist [Code] normalerweise die beste Quelle für das, was es tun muss?
Es ist immer die beste Quelle für das, was es ist , zu tun. Die beste Quelle für das, was Code tun sollte , können jedoch (eine Kombination von) verschiedenen Dingen sein, wobei die wichtigsten folgende sind:
- Der Code selbst;
- Der aufrufende Code;
- Kommentare in diesem Code;
- Dokumentation;
- Unit Tests;
- Integrations- und Regressionstests;
- Der Programmierer;
- Endverbraucher;
Welche "beste" Quelle (oder Kombination davon) ist, hängt von Ihrer Situation ab.
Wenn es sich um agilen Code handelt, ist es weniger wahrscheinlich zu lügen, oder kann dieser Code überhaupt nicht lügen?
Ich bin mir nicht sicher, was Sie unter "agilem Code" verstehen. AFAIK "agil" bezieht sich normalerweise auf den Codierungsprozess. Angenommen, Sie meinen "Code, der in einem agilen Programmierprozess erstellt wurde", dann kann ich mit Sicherheit sagen, dass er immer noch lügen kann. Wie wahrscheinlich es ist, zu lügen, im Vergleich zu Code, der beispielsweise in Projekten im Wasserfallstil erstellt wurde, ist eine subjektive Angelegenheit (ich persönlich glaube nicht, dass es einen großen Zusammenhang gibt).
Fußnote
Alle oben sind unter der Annahme , dass Code kann liegen, und dass dies ein Grund ist (wenn auch etwas gekünstelt) Beispiel:
public int DivideByTwo(int input)
{
return input / 3;
}
Dies ist nur ein Beispiel, in dem ich "Codelügen" sagen würde, @ user61852 hat einige andere (nicht erreichbarer Code, Komplexität des Codes stimmt nicht mit der Komplexität des Problems überein, schlechte Benennung), und ich denke, es gibt noch viel mehr. Wikipedia hat eine etwas anständige Zusammenfassung von Lügen , viele von ihnen können Code gefunden werden.
Beachten Sie, dass, wenn Sie sich mit jemandem streiten, Sie sehr sicher sein müssen, dass die andere Person nicht mit "Code kann nicht lügen" meint, dass "Code tut, was er tut". Im Wesentlichen definiert die andere Person hier eine Definition für "Lüge", die so eng ist, dass sie die Aussage "Code kann nicht lügen" als Axiom / Grundwahrheit deklarieren kann. In diesem Fall ist es wahrscheinlich am besten, seinem Axiom zuzustimmen.