Backend

Legacy Codebase Bugfixing

Analyse und Behebung eines kritischen Suchfunktions-Bugs in einer Legacy-Shop-Software.

Dauer 1 Week
Legacy Bugfix Diagnose

Über das Projekt

Ein Kunde betrieb eine Legacy-Shop-Software, die für verschiedene Endkunden customized wurde. Es häuften sich Meldungen über schlechte Suchergebnisse mit unvorhersehbarem Verhalten: Eine Suche nach „KB-281" (interne Bezeichnungen wie KB-281-001, KB-281-002 etc.) fand nichts, während „KB-282-001" gefunden wurde. Das Verhalten war für Nutzer nicht nachvollziehbar.

Analyse

Die gründliche Code-Analyse offenbarte ein fundamentales Problem im Suchalgorithmus: Die Anwendung nutzte eine selbst implementierte Fuzzy-Search auf MySQL-Basis. Der Algorithmus generierte zur Laufzeit Fuzzy-Begriffe basierend auf konfigurierbaren Parametern im Admin-Portal – weshalb Anpassungen manchmal bessere Ergebnisse für einige Begriffe lieferten, aber andere verschlechterten.

Root Cause

Das Kernproblem: Der User-Input wurde nie direkt als Keyword gesucht. Der Fuzzy-Algorithmus gab eine Liste von Begriffen zurück, enthielt aber nicht zuverlässig die gesplitteten Keywords der Originalanfrage.

Die Lösung

Die entwickelte Lösung war ein Hybrid-Ansatz: Die Fuzzy-Begriffe wurden weiterhin genutzt, ergänzt um sanitized und gesplittete Keywords aus dem User-Input. So wurden sowohl Keyword-basierte als auch Fuzzy-Suchen ermöglicht – die Suche wurde deutlich robuster und zuverlässiger.

Highlights

  • Root-Cause-Analyse in komplexer Legacy-Codebasis
  • Identifikation eines subtilen, aber kritischen Bugs
  • Hybrid-Lösung ohne kompletten Rewrite
  • Sichere Implementierung mit Input-Sanitization

Herausforderungen

Verstehen der komplexen, selbst implementierten Fuzzy-Search-Logik. Balance zwischen Fix und Regressionsvermeidung.

Ergebnisse

Zuverlässige Suchergebnisse für alle Produktbezeichnungen. Behebung langjähriger Kundenbeschwerden.

Interesse?

Sie interessieren sich für ein ähnliches Projekt oder möchten mehr erfahren? Kontaktieren Sie uns – wir freuen uns auf den Austausch!

Kontakt aufnehmen