Bild eines Programmierers, der an einem Computer arbeitet

Verbesserung der Systemproduktivität durch Refactoring

Herausforderungen

Bei Informationssystemen wird es mit zunehmendem Funktionsumfang oft schwieriger, neue Funktionen hinzuzufügen. Das System lässt sich nur noch schwer weiterentwickeln, und die mit der Wartung des Systems verbundenen Kosten beginnen die Kosten für die Einführung neuer Funktionen zu übersteigen. Diese Art von Situation ist normalerweise ein sehr schlechtes Warnzeichen für Probleme.

Das System des Kunden wies schon früh Anzeichen einer Erosion auf - es kam immer häufiger zu Plattformüberläufen. Dies war auf fehlerhaft ausgeführte Funktionen zurückzuführen und führte zu Datenbeschädigungen. Ziel des Projekts war es, eine weitreichende Skalierbarkeit zu erreichen, die einen stabilen Betrieb bei einer gleichzeitigen Last von mehreren tausend Nutzern und einem Zustrom von bis zu zehn- bis hunderttausend Datensätzen pro Tag ermöglicht. Dies alles natürlich unter Aufrechterhaltung eines unterbrechungsfreien Systembetriebs und eines hohen Maßes an Erweiterbarkeit.

Lösungen

Die hohen Anforderungen erforderten eine Vielzahl von Änderungen an der Systemarchitektur. Eine Möglichkeit zur Produktivitätssteigerung besteht darin, eine Refactoring-Phase in den Projektumfang aufzunehmen - eine iterative Modifikation des Codes, die nicht zu funktionalen Änderungen führt. Ziel des Refactoring-Prozesses ist es, die Qualitätsmerkmale des Systems wie Wartbarkeit, Erweiterbarkeit, Leistung, Skalierbarkeit, Beobachtbarkeit, Produktivitätssteigerung und Flexibilität zu verbessern.

Im Rahmen des Projekts wurde ein Plan erstellt, in dem die Aufgaben priorisiert wurden, die den geringsten Arbeitsaufwand erforderten und gleichzeitig die besten Ergebnisse lieferten. In jedem Sprint wurden zwischen 10 und 30 % der technischen Aufgaben so eingeführt, dass sie die Umsetzung der neuen Geschäftsanforderungen nicht behinderten.

Um den Anforderungen des Unternehmens gerecht zu werden, wurde beschlossen, ein Modul zu entwickeln, das die Ausführung von Funktionen optimiert und die Anzahl der Datenbankoperationen reduziert. Es wurde ein Modul eingeführt, das den Betrieb von Nachrichtenwarteschlangen auf der Grundlage von Salesforce Platform Events nachahmt, und es wurden Mechanismen eingeführt, um Fehler zu protokollieren und die Anzahl und Geschwindigkeit asynchroner Aufrufe, den Status von Systemwarteschlangen, Plattformgrenzen und den Status der wichtigsten automatisierten Prozesse im System zu verfolgen.

Auswirkungen

Der Refactoring-Prozess hat im Laufe der Zeit die Wartung und Entwicklung des Systems erheblich erleichtert und die Beseitigung von Fehlern und die Schaffung neuer Fehler deutlich erschwert. Die Umsetzung des Projekts hat es möglich gemacht,:

  • Erhöhte Geschwindigkeit und Leistung - Optimierung der Funktionalität erleichtert, zyklische Abhängigkeiten in der Logik reduziert, die meisten Funktionen in den Code verlagert
  • verbesserte Skalierbarkeit: Aufgaben können in eine Warteschlange gestellt und im Falle von Fehlern bearbeitet werden, ein Call-Out-Mechanismus wählt die geeignete Strategie je nach Kontext des Call-Outs,
  • Bessere Beobachtbarkeit - es wurden Mechanismen eingeführt, um Fehler zu protokollieren und die Anzahl und Geschwindigkeit von Aufrufen, Plattformgrenzen und den Status der wichtigsten Prozesse im System zu verfolgen; die erstellten Berichte zeigen, was derzeit im System aus technischer Sicht geschieht,
  • Erhöhte Erweiterbarkeit und Flexibilität - der größte Teil des Codes wurde in kleinere Klassen aufgeteilt, wobei darauf geachtet wurde, dass die entsprechenden Abhängigkeiten beibehalten werden; jede Funktionalität kann von der Administratorenebene aus deaktiviert werden,
  • Wartungsfreundlichkeit - es wurde ein gut getestetes und stabiles Tool entwickelt, auf dem die Geschäftslogik basiert.
Verwendete Technologien und Werkzeuge

Salesforce, Sales Cloud, Service Cloud, Community Cloud, Marketing Cloud, AWS, Apex, Lightning Web Components

Education First-Logo
Kunde:

Bildung zuerst

Education First ist ein weltweit führendes Unternehmen in der Bildungsbranche, das seit mehr als 50 Jahren bahnbrechende Sprachlernmöglichkeiten für Menschen aller Altersgruppen, Nationalitäten und Hintergründe anbietet. Das Unternehmen hat mehr als 600 Niederlassungen in über 60 Ländern auf allen Kontinenten.