CodeSOD: Bezahle später Notiz

CodeSOD: Bezahle später

Ross wurde beauftragt, eine Software zu entwickeln, die sich mit einem Zahlungsgateway für Kreditkarten integriert, das XML für den Datenaustausch verwendet. Das Zahlungsgateway war relativ klein und hatte keine veröffentlichte Schemadokumentation, aber es stellte Beispielcode zur Verfügung, um ihre XML-Nachrichten zu parsen. Der Beispielcode verwendete eine Funktion namens fetch_data, um Daten aus der XML-Antwort zu extrahieren. Die fetch_data-Funktion war jedoch schlecht implementiert und verwendete mehrere Teilstrings, um das XML-Dokument zu parsen, ohne dessen Struktur zu berücksichtigen. Dieser Ansatz machte sie zerbrechlich und unfähig, verschachtelte Tags, Attribute oder selbstschließende Tags zu handhaben. Die Funktion ermöglichte es auch, willkürliche und ungültige Dokumentfragmente zu extrahieren. Ein besserer Ansatz wäre die Verwendung von PHPs eingebauten XML-Parsing-Klassen, die eine robustere und wartungsfreundlichere Lösung bieten würden. Die aktuelle Implementierung bietet möglicherweise nicht einmal Leistungsvorteile aufgrund der mehrfachen linearen Suchen durch das Dokument. Die Verwendung eines zerbrechlichen und limitierten Parsing-Ansatzes kann zu Wartungsproblemen und Schwierigkeiten bei der Handhabung gültiger XML-Dokumente führen. Die Implementierung ist ein Beispiel für eine schlecht konzipierte Lösung, die langfristig Probleme verursachen kann. Der Autor des Codes scheint einen simplistischen Ansatz für das Parsen von XML gewählt zu haben, der nicht geeignet ist, um komplexe XML-Dokumente zu handhaben.