Robert Zentgraf
 - 21. Februar 2017

Optimale Entwicklung mit Salesforce

Salesforce Entwicklung mit Apex

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.
Deployment Entwicklung

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.

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.

Die Vorteile der Marketing Automation mit Salesforce Pardot

Automatisierte Leadqualifizierung klingt für Sie wie ein Traum? Dann werden Sie mit der Marketing Automation ins Schwärmen geraten! Erfahren Sie wieso.

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.
ProblemSolving

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.

KISS - Keep It Simple Stupid

Robert Zentgraf
Theorie ist schön und gut. Sie wollen wissen, ob bei Ihnen optimal entwickelt wird? Dann kontaktieren Sie uns gern direkt.
Salesforce Consultant Robert Zentgraf

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.

Robert Zentgraf

Mein Name ist Robert Zentgraf und seit einigen Jahren bin ich leidenschaftlicher Salesforce Consultant bei der mindsquare GmbH.

Sie haben Fragen? Kontaktieren Sie mich!



Das könnte Sie auch interessieren


Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.





Angebot anfordern
Preisliste herunterladen
Expert Session
Support