Zadajesz kilka pytań.
Czy powinniśmy szukać kłamliwego kodu?
Oczywiście!
Czy powinniśmy porównywać [kod] z istniejącą dokumentacją?
To nigdy nie może zaszkodzić, chociaż jak wspomniano w innych odpowiedziach, częściej prowadzi to do problemów w dokumentacji , a nie w kodzie .
Czy też [kod] jest zwykle najlepszym źródłem tego, co musi robić?
To jest zawsze najlepszym źródłem do tego co się robi. Najlepszym źródłem tego, co powinien robić kod, mogą być (kombinacje) różnych rzeczy, z których najważniejsze to:
- Sam kod;
- Kod telefoniczny;
- Komentarze w tym kodzie;
- Dokumentacja;
- Testy jednostkowe;
- Testy integracji i regresji;
- Programista;
- Użytkownik końcowy;
To, które jest „najlepszym” źródłem (lub ich kombinacją), zależy od twojej sytuacji.
Jeśli jest to zwinny kod, to czy jest mniej prawdopodobne, że kłamie, czy może ten kod wcale nie kłamie?
Nie jestem pewien, co rozumiesz przez „zwinny kod”, AFAIK „zwinny” zwykle odnosi się do procesu kodowania. Przypuśćmy, że masz na myśli „kod utworzony w zwinnym procesie programowania”, więc myślę, że można bezpiecznie powiedzieć, że wciąż może kłamać. To, jak prawdopodobne jest, że kłamie, w porównaniu do kodu stworzonego np. W projektach w stylu wodospadu, jest kwestią subiektywną (osobiście nie sądzę, żeby istniało duże powiązanie).
Przypis
Wszystkie powyższe założenia zakładają, że kod może kłamać i że jest to podstawowy (choć nieco wymyślony) przykład:
public int DivideByTwo(int input)
{
return input / 3;
}
To tylko jeden przykład, w którym powiedziałbym, że „kod leży”, @ user61852 ma jeszcze kilka innych (nieosiągalny kod, złożoność kodu niepasująca do złożoności problemu, złe nazewnictwo) i myślę, że jest ich o wiele więcej. Wikipedia ma dość przyzwoite podsumowanie kłamstw , wiele z nich można znaleźć kod.
Zauważ, że jeśli kłócisz się z kimś, bądź pewien, że druga osoba nie rozumie przez „kod nie może kłamać”, że „kod robi to, co robi”. Zasadniczo druga osoba tutaj definiuje za pomocą definicji „kłamstwa”, która jest tak wąska, że może zadeklarować stwierdzenie „kod nie może kłamać” jako aksjomat / podstawowa prawda. W takim przypadku prawdopodobnie najlepiej jest zgodzić się z jego / jej axioma.