man die Analyse von Software mit dem Ziel, ihren inneren Aufbau / ihre Struktur zu erkennen und zu verstehen. • Die Analyse von Kommunikationsprotokollen Wireshark
man die Analyse von Software mit dem Ziel, ihren inneren Aufbau / ihre Struktur zu erkennen und zu verstehen. • Die Rekonstruktion des Quellcodes von Programmen
das externe Unternehmen • Die Software ist nur unter PHP 5.5 lauffähig • Performance Probleme • Bestehende Bugs konnten nicht behoben werden • Erschwerte Implementierung von Features (Seiteneffekte)
der einzelnen Bestandteile der Software • Einen vorgegebenen Workflow • Stub-Dateien pro Klasse – Funktionsnamen – Geschätzte Anzahl an Codezeilen pro Funktion
Test gegen alte Funktion geschrieben • Funktionsverhalten mit Hilfe von xdebug_trace analysiert • Neuschreiben der Funktion • Ersetzen der alten Klassen
{ public static function formatTimeString($timestamp) { return date(‘Y-m-d H:i:s‘‚ $timestamp); } } Alle Aufrufe der OldLibExample-Klasse werden ausgetauscht.
{ public static function formatTimeString($timestamp) { $format = ‘Y-m-d H:i:s’; return date($format‚ $timestamp); } } Hatte diese Zuweisung einen Sinn?
$timestamp = strtotime('2018-05-15 07:14:03'); xdebug_start_trace(PATH_FS_TMP.'/../trace-docs/example_trace_'); $return = \OLD\LIB\Time::localDateTime($timestamp); xdebug_stop_trace(); return $return; } Betrachten wir ein Beispiel 06.06.2018 39 Bei uns Standard ‘on‘
• Option ‘xdebug.collect_assignments’ auf OFF • Keine Variablenzuweisung ersichtlich • ‘Trace End’ vorhanden => Mergen der verschiedenen Traces notwendig Probleme 06.06.2018 43