Hathor hat da natürlich auch gerade eine Paradebeispiel für dieses Anti-Pattern geliefert.
Schnippeldi-Refaktor-DRY:
Delphi-Quellcode:
Procedure ReadNode (
string title, nodeKey);
Begin
try
Nodes := XmlDoc.selectNodes(nodeKey);
Form1.Memo1.lines.add(Format('
%20s %s',[title,Nodes.Item(0).Text]));
except
on E:
Exception do
Form1.Memo1.lines.add(
string,Format('
---> %s not exists.',[title]);
end;
End;
...
ReadNode('
1. SystemScore' ,'
//WinSAT/WinSPR/SystemScore');
ReadNode('
2. MemoryScore' ,'
//WinSAT/WinSPR/MemoryScore');
ReadNode('
3. CpuScore' ,'
//WinSAT/WinSPR/CpuScore');
ReadNode('
4. VideoEncodeScore','
//WinSAT/WinSPR/VideoEncodeScore');
ReadNode('
5. GraphicsScore' ,'
//WinSAT/WinSPR/CpuScore');
ReadNode('
6. GamingScore' ,'
//WinSAT/WinSPR/GamingScore');
...
Ich kann mir nicht helfen: Eher ein Paradebeispiel, wie lesbar Code mit Exceptions wird (Und das ist noch nicht einmal gut refaktorisiert)
Die PROCEDURE READNODE kann nicht funktionieren,
weil das Object XmlDoc nicht bekannt ist.
Es ständig neu zu erzeugen und zu verwerfen macht auch keinen Sinn.
Dieser sinnlose VERBESSERUNGSTRIEB mancher "Zeitvertreiber" ist auch der Grund, warum ich hier meine Projekte nicht veröffentliche!