Optimale Entwicklung mit Salesforce
Wie kann eine optimale Entwicklung mit Salesforce aussehen? Mit Salesforce.com ab Lightning Enterprise (früher: Enterprise Edition) gibt es neben der Administration bzw. dem Customizing auch die Möglichkeit, Implementierungen in Apex vorzunehmen.
Innerhalb dieses Beitrages möchte ich Ihnen näher bringen, worauf beim Entwickeln innerhalb von Salesforce.com zu achten ist. Dies werde ich anhand verschiedener Punkte demonstrieren.
Einheitliche Entwicklungsrichtlinie
Durch eine Entwicklungsrichtline können Sie die Qualität des Codes sichern. Entsprechende Best Practices helfen dem Developer Klassen, Methoden und Felder schnell zu identifizieren und anschließend auch damit arbeiten zu können. Daraus resultieren Vorteile wie z. B.:
- Hohe Nachvollziehbarkeit des Codes
- Schnelle Behebung von Bugs
- Vereinfachte Einarbeitung neuer Developer
Strukturierter Deployment-Prozess
Ein definierter und strukturierter Deployment-Prozess ist bei mehreren Entwicklern oder verschiedenen Developer-Teams zwingend notwendig. Nur so lässt sich vermeiden, dass durch diverse Deployments Code von anderen Entwicklern überschrieben wird. Es empfiehlt sich zudem, das Deployment regelmäßig (z. B. alle zwei Wochen) durchzuführen. Hierbei ist es sinnvoll, einen Deployment-Verantwortlichen zu benennen. Er sorgt für gleiches Verständnis bei allen. Beispielhafte Themen sind: Deployment Instruktionen, Transportpakete, Dokumentation. Mergen von Entwicklungen.
Testklassen sind wichtig
Zur Durchführung eines Deployments fordert die Salesforce-Plattform eine Testklasse mit mindestens 75% Code-Abdeckung. Das Erreichen der Code-Abdeckung ist recht schnell erreichbar, sorgt aber nur dafür, dass das Deployment funktioniert. Viel besser wird es, wenn Sie die Testklassen verwenden, um neben der Code-Abdeckung auch zu prüfen, ob das erwartete Ergebnis eintritt. Durch gute Vergleiche lassen sich spätere Fehler vermeiden und bei Weiter- bzw. Neuentwicklungen eher sehen, ob neue Probleme auftreten. Nutzen Sie hier mehrere Testmethoden in Ihrer Klasse, sodass verschiedene Fälle geprüft werden können.
Prozessoptimierung ist Ihnen ein Dorn im Auge? Bei jeder Änderung dauert es Wochen bis Fachabteilung und IT sich einig sind? Wir schulen Ihre Mitarbeiter bei der Anwendung und Umsetzung von eigenen Prozessen in Salesforce!
Vermeidung von hart-codierten Texten und Werten
Bei der Entwicklung ist es zu vermeiden, Texte und Werte direkt in den Quelltext zu schreiben. Der Nachteil ist offensichtlich, denn jede Anpassung am Business-Prozess würde eine Änderung des Codes sowie ein Deployment zufolge haben. Als Lösung bieten sich hier Custom Labels, Custom Settings und Custom Objects an.
Beachtung der Limitierungen von Salesforce
Ihre Salesforce-Umgebung liegt auf einem Server, auf dem auch Orgs anderer Kunden gehostet sind. Um die Server performant und stabil zu halten, hat Salesforce Limitierungen bei der Apex-Programmierung eingebaut. Eine erste Übersicht ist hier zu finden.
Zuerst das Problem verstehen
Sie haben für Ihre Salesforce-Umgebung neue Ideen, die sofort umzusetzen sind. Sie können dies natürlich recht bequem schnell durchführen, jedoch rate ich Ihnen davon ab. Bevor Sie mit der Umsetzung starten, sollten Sie das Problem im Detail identifizieren und verstehen. Eine sofortige Umsetzung kann dazu führen, dass “quick & dirty” eine Lösung implementiert wird, die später zu neuen Herausforderungen im Gesamtkonzept führen.
Vermeidung von Workarounds bei der Implementierung
An die Problemdefinition schließt sich die Umsetzung an. Bei der Implementierung lässt sich eine Lösung schnell und vielleicht unsauber umsetzen. Vermeiden Sie dies! Nutzen Sie die Möglichkeiten, ordentlichen Code zu schreiben, der später wiederverwendet werden kann. So werden ungewollte Bugs verhindert und ein späteres Refactoring kann vermieden werden.
Vorteile von AppExchange und Helper-Klassen
Nicht jede Idee müssen Sie neu umsetzen. Ein Blick in den Salesforce AppExchange kann Ihnen helfen. Dort finden Sie fertige Lösungen für verschiedene Business-Prozesse, zum Teil sind diese Anwendungen kostenfrei. Bei den kostenpflichtigen Apps ist neben einer ausführlichen Analyse (Passt das Produkt und die angebotene Lösung?) auch eine ROI-Betrachtung durchzuführen.
Bei einer Lösung ohne App aus dem AppExchange folgt eine Eigenentwicklung. Schreiben Sie die Komponenten und den Code so, dass dieser wiederverwendet werden kann. So ist es manchmal sinnvoll, einzelne wiederkehrende Elemente von Visualforce Seiten (z. B. eine Produktauswahl) in Komponenten auszulagern, sodass diese in mehreren Seiten eingesetzt werden können. Für die objektorientierte Sprache Apex ist gleichermaßen zu verfahren. Lagern Sie häufig verwendete Methoden in Helper-Klassen aus.
Konfiguration vs. Entwicklung
Nicht immer muss eine Problemstellung durch Programmierung gelöst werden. Das Salesforce-Framework bietet viele starke Standardfunktionalitäten, die einerseits einfach anpassbar und zudem release-sicher sind. Zudem ist hier kein Deployment zwingend notwendig. Entwickler neigen dazu, schnell neue Anforderungen zu implementieren – behalten Sie einen Überblick über einfache Standardalternativen.
Im Prinzip: KISS
Eine optimale Entwicklung in Salesforce ist nicht trivial. Die angesprochenen Punkte sind allgemeingültig, trotzdem werden diese in vielen Projekten nur halbherzig beachtet. Behalten Sie daher diese Punkte im Hinterkopf und sorgen Sie dafür, dass Ihre Salesforce-Plattform nicht verbogen und zu einem komplexen System wird. Das Prinzip KISS (Keep It Simple Stupid) fasst dies gut zusammen und könnte als Handlungsgrundlage für neue Implementierungen verwendet werden.
Haben Sie Fragen oder Anregungen? Verfassen Sie einen Kommentar oder melden Sie sich per Mail bei info@mind-force.de. Unser Team wird Ihnen schnellstmöglich antworten.