Salesforce

Die Sicht der Salesforce-Experten auf Code Review-Prozesse und Tools für Apex-Code-Änderungen

by | August 15, 2018

Die Sicht der Salesforce-Experten auf Code Review-Prozesse und Tools für Apex-Code-Änderungen

Bei einer kürzlich stattgefundenen Salesforce World Tour-Veranstaltung kam es zu einem Gespräch über den Code-Review-Prozess und Tools für Apex-Code-Änderungen. Code-Reviews sorgen dafür, dass mehrere Mitglieder Ihres Teams jede Zeile Code in Ihrer Salesforce-Anwendung zumindest gesehen haben. Die Begutachter betrachten mehrere Perspektiven. Sie können Logikfehler und Codequalität, fehlende Akzeptanzkriterien und Testabdeckung betrachten. Das Code-Review bedeutet einfach gesagt, dass Salesforce-Teams sicher sein können. Die höhere Qualität des Codes, das bessere Grundverständnis der Teams, mehr Sicherheit und generell mehr Effizienz sind einige der Vorteile dieser Überprüfungen.

 

Aber über das Verständnis der Vorteile von Code-Reviews hinaus zielt dieser Artikel darauf ab, Administratoren und Entwickler mit der Sicht der Experten auf Code-Review-Prozesse und Tools für Apex-Code-Änderungen auszustatten. Wir stellten eine Frage an führende Salesforce-Gurus und das ist, was sie zu sagen hatten.

 

Unsere erste Antwort kommt von Enrico Murru, Solution & Technical Architect @ WebResults (Engineering Group), Entwickler von ORGanizer for Salesforce. Enrico ist ein Salesforce-MVP mit einem großartigen Blog für die gesamte Salesforce-IT.

 

enrico

 

In Enricos Blog, Salesforce/VCS, The team factor or how a business analyst can affect the overall delivery speed, geht er auf das Thema Code Reviews ein und schreibt: “Die Überprüfung Ihrer Entwicklung hat zu viele Vorteile, um sie zu ignorieren. Sie verhindert, dass Sie ein schlechtes Design einführen, welches das Projekt zugunsten eines kurzfristigen Erfolgs auf lange Sicht verkrüppelt. Einblicke werden im Team geteilt, so dass es keine Überraschungen gibt. Und Sie werden ein besserer Entwickler durch Feedback.”

 

Hier ist Enrico Murrus Antwort auf unsere Frage: Was sind Ihre bevorzugten gut dokumentierten Code Review Prozesse und -Tools für Apex Code Änderungen?

Wenn ich von Code Reviews höre, denke ich an meine ersten Tage als (Apex-)Programmierer, vor etwa 10 Jahren. Zu dieser Zeit waren wir eine kleine Firma mit wenigen hochqualifizierten Entwicklern, aber ohne Zeit/Budget für Code-Qualitätsüberprüfungen und die einzigen Überprüfungen, die ich bekam, waren Paarprogrammierungen mit älteren Entwicklern: Projekte waren absolut größer als wir, aber wir hatten keine Angst und wir erwarben ein so hohes Maß an Professionalität und Fähigkeiten, mit einer gewissen Dosis an Naivität.

 

Die Zeit verging, wir wurden erwachsen (“mehr als 10x in 10 Jahren!”) und wir verstanden, dass wir in unseren Projekten eine Überprüfung der Code-/Konfigurationsqualität benötigen. Wir begannen mit dem Aufbau eines internen Tools für:

  • Automatische Abdeckungsberechnung und Benachrichtigungen für Apex-Tests
  • Tägliche Überprüfung von neuen Klassen / Triggern / Seiten / Lightning-Komponenten / Metadaten-Komponenten, um zu sehen, ob sie den Namenskonventionen folgten (manchmal haben Junior-Entwickler eine besondere Fantasie bei der Namensgebung)
  • Überwachung von Async-Aufträgen
  • Apex-Job-Fehlermeldungen

 

Aber das war nicht genug, manuelle Inspektionen von Commits waren teuer und fehleranfällig, wir brauchten eine automatische Codeanalyse, um uns bei täglichen und sich wiederholenden Aufgaben zu helfen.

 

SFDC-eBook herunterladen

Je nach Art/Größe des Projekts verwendeten wir Checkmarx (https://www.checkmarx.com), das Open Source PMD (https://pmd.github.io) sowie einen intelligenten und einfach zu bedienenden Newcomer im Salesforce-Ökosystem, Clayton (https://www.getclayton.com/).

 

Mit der automatischen Codeanalyse wurde das Leben der Programmierer einfacher, die Besorgnispegel waren auf ein annehmbares Niveau gesunken (obwohl ich glaube, für Programmierer wie mich ist Angst wie ein Treibstoff) und wir können uns auf den besten Teil der Programmierung konzentrieren, das ist die Kreativität!

 

Ich kann Ihnen keinen besten Weg vorschlagen, wie Sie die Codeanalyse in Ihrem Unternehmen fördern können, es hängt von der Erfahrung der Programmierer, der Projektgröße und dem -Typ ab, aber der einzige Vorschlag ist, es mit welchem Mittel auch immer zu tun, solange Sie es tun, um eine gute Programmierkultur zu fördern.

 

Klicken Sie hier, um Enricos Blog anzusehen.

 

Abhilasha Singh

 

Unsere nächste Antwort kommt von Abhilasha Singh. Abhilasha ist ein Salesforce-MVP und Salesforce-Entwicklerin bei Dazeworks. Sie hat einen aktiven Twitter-Feed und gibt viele gute Tipps zur Welt der Salesforce-Entwicklung.

Die Salesforce-Entwicklung ist einzigartig durch ihre “Klicks statt Code”. Funktionen, die über die Salesforce-Benutzeroberfläche erstellt werden, profitieren weiterhin von Code-Reviews. Git ist eines der besten Tools für Code-Reviews. Code-Reviews funktionieren am besten, wenn es möglich ist, Zweige für Ihren Code zu erstellen, die vom Master-Zweig getrennt sind. Git macht es wirklich einfach. Es macht es auch einfach, einen früheren Zweig mit dem neuen Zweig zu vergleichen.

 

Hier sind ein paar Tools, die ich für die Apex-Code-Änderungen empfehle:

  1. Change Sets: Es ist hilfreich, wenn Sie die Metadaten zwischen zusammengehörigen Organisationen migrieren müssen. In Changeset benötigen Sie eine Deployment-Verbindung zwischen den Organisationen.
  2. Developer Console: Dies ist eine browserbasierte Entwicklungsumgebung, die zum Erstellen, Testen und Debuggen von Anwendungen in der Salesforce-Organisation eingesetzt wird. Wir können auch SOQL- und SOSL-Abfragen schreiben und bearbeiten.
  3. Workbench: Dies ist eines der webbasierten Tools, die für Salesforce-Administratoren und Entwickler konzipiert wurden, um mit der Salesforce-Organisation über die http://Force.com API zu interagieren. Damit können Administratoren und Entwickler ihre Daten einfach in die Organisation einsehen. Es kann auch SOQL, SOSL, Test, Deployment, Session-Einstellungen und Fehlerbehebung ihrer eigenen Anwendung durchführen.
  4. http://4.Force.com  IDE: Dazu müssen wir zuerst Eclipse installieren (ein Entwickler-Tool, das von allen Arten von Entwicklern auf der ganzen Welt verwendet wird). Nur dann können wir die http://Force.com IDE installieren. Die http://Force.com IDE basiert auf der Eclipse-Plattform und ist auf der Tooling-API aufgebaut. Sie bietet eine komfortable Umgebung für Programmierer, die mit integrierten Entwicklungsumgebungen vertraut sind, sodass Sie alles aus der IDE heraus programmieren, kompilieren, testen, paketieren und deployen können.
  5. ANT Migration Tool: Migrations-Tool: Dieses Toolkit ähnelt der Eclipse-IDE, nur dass es als Salesforce-Deployment-Tool verwendet werden soll, welches geskriptet und automatisiert werden kann, ohne dass UI-Interaktionen erforderlich sind. Das macht das Ant-Migration-Toolkit ideal für Dinge wie Continuous Integration und automatisches Deployment.

Folgen Sie Abhilasha auf Twitter

 

Paarth Jolly

 

Unsere dritte Antwort kommt von Paarth Jolly, CEO & Gründer von YVExperts. ist ein aktiver Blogger, http://blogs.paarthjolly.org/ und We Both Code und seit 2013 ein führendes Mitglied der Salesforce-Community. Außerdem hat er mit Salesforce.com bei der Entwicklung von Sales- und Service-Cloud-Anwendungen zusammengearbeitet. Dies beinhaltet sowohl Standard- als auch kundenspezifische Funktionalitäten. Hier ist, was Paarth unserem Blog beizufügen hatte:

 

Das Code-Review ist ein wichtiger Teil der Salesforce-Implementierung. Manchmal schreiben wir Code, der nach geschäftlichen Gesichtspunkten einwandfrei funktioniert, aber einen Syntaxfehler aufweist, der bei der Weitergabe des Pakets bzw. Codes an AppExchange Probleme verursachen kann. Zwei wichtige Prozesse für die Code-Reviews sind die Code-Optimierung und die Verwendung der von Salesforce bereitgestellten Secure Coding Guidelines.

 

SFDC-eBook herunterladen

 

Code-Optimierung

Die Code-Optimierung ist der erste Schritt, nachdem Sie mit dem Coding fertig sind. Obwohl Salesforce eine fantastische Plattform ist, gibt es viele Einschränkungen. Entwickler müssen immer die Grenzen des Backend-Systems im Auge behalten und versuchen, Code immer dynamisch zu schreiben, damit er in Zukunft an verschiedenen Stellen entsprechend verwendet werden kann.

Beim Entwickeln und Schreiben des Codes konzentriere ich mich immer auf die folgenden Dinge:

  1. Vermeiden Sie SOQL-Abfragen oder DML-Anweisungen innerhalb von FOR-Schleifen.
  2. Bulk-Triggern Sie Ihren Code
  3. Führen Sie Bulk-Operationen für Ihre Helper-Methoden durch
  4. Verwendung von Collections, Streamlining Queries und Efficient for Loops (Verwenden Sie Maps und vermeiden Sie geschachtelte for/do-while-Schleifen)
  5. Kommentare, viele Kommentare, damit es für jeden anderen Entwickler leicht verständlich ist
  6. Verwendung der Limits-Apex-Methoden zur Vermeidung von Governor-Grenzen

 

Secure Coding Guidelines

Die Secure Coding Guidelines sind für jeden Entwickler unerlässlich. Sie finden eine vollständige Anleitung von Salesforce, in der erklärt wird, wie Sie sicherstellen können, dass Ihr Code/Paket einen Sicherheitsüberprüfungsprozess durchläuft, damit Ihre Anwendung in AppExchange verfügbar ist.

Mehr von Paarth

 

Meighan Brodkey

 

Als nächstes haben wir Meighan Brodkey, Senior Consultant Community Specialist bei GearsCRM und die Leiterin der Seattle Women in Tech User Group. Seit 2008 teilt Meighan ihre Salesforce-Erfahrungen, Tipps, Tricks und Best Practices mit Admins aus aller Welt in ihrem Blog. Hier ist, was Meighan zu sagen hatte.

 

Es ist unerlässlich, dass Sie in einem Projekt die Kontrolle haben. Eine Sache, die ich bei jedem Projekt mache, ist ein Backup Ihrer Metadaten, während wir weiterbauen, sodass wir eine Art Source Control haben. Auf diese Weise können Sie bei Bedarf auf diese Referenz zurückgreifen und dafür sorgen, dass jedermanns Änderungen verfolgt und vor Ihrem Deployment überprüft werden.

 

Wenn Sie Fehler beheben oder Ihren Code erweitern, können Fehler auftreten, so dass Sie zu dieser vorherigen Version zurückkehren können, um zu sehen, was funktioniert hat, damit Sie herausfinden können, wo die Probleme angefangen haben. Nicht nur Ihr Code wie z. B. Lightning-Komponenten, Klassen, usw. sollten enthalten sein, sondern auch alle Metadaten, Objekte, Ihre Abläufe, usw., so dass Sie immer noch zurückgehen können, anstatt alles von Grund auf neu zu machen. Es ist wichtig, einen einzigen Ort (GithUb, BitBucket, etc.) zu haben, von dem aus jeder für einen Feature-Zweig oder einen einzelnen Zweig, mit dem jeder arbeitet, verzweigt. Wenn jede Komponente genehmigt ist, können Sie durch das Zusammenführen in den Master sicherstellen, dass Sie die genehmigte und die in Arbeit befindliche Arbeit getrennt haben.

 

Eine tolle Möglichkeit, dies zu tun, besteht in einer Pull-Anforderung, bei der jeder Entwickler seine Arbeit vervollständigt und einreicht. Das kann nicht die einzige Kontrolle sein. Wenn ein Entwickler, der den Code nicht geschrieben hat, oder der TA eines Projekts eine Code-Review für jedes Element durchführt, wird sichergestellt, dass Sie dieses zweite Augenpaar haben und keine Best Practices oder Anforderungen übersehen. Sogar als Architect in Projekten lasse ich meinen Code von einem Entwickler gegen mich selbst überprüfen, um sicherzustellen, dass ich nichts vergessen habe.

Lesen Sie mehr von Meighan

 

Abhi Tripathi

 

Unsere fünfte Antwort kommt von Abhi Tripathi, Salesforce-Entwickler bei Homestar Financial Corporation und Salesforce-Evangelist. Abhi’s Blog, Cloudyabhi, befasst sich mit Salesforce-Best Practices und bietet Top-Tipps für Entwickler und Administratoren. Lesen Sie Abhi’s Vorschläge für Code-Review-Prozesse und Tools für Apex-Code-Änderungen.

 

Salesforce ist eine großartige Plattform und verfügt über eine unglaubliche Community, die ihren Entwicklern und Administratoren hilft, in ihrer Karriere zu wachsen. Mit den Salesforce-Communities erhalten wir viele großartige Tools, die Entwicklern und Administratoren das Leben leicht machen. Eine der wichtigen Praktiken bei der Projektumsetzung ist der Code Review, da er dafür sorgt, dass Ihr Team Einblick in Ihren Anwendungscode hat. Hier ist die Liste einiger Tools, die ich für die Überprüfung von Apex-Codes gefunden habe:

  1. Checkmarx: Checkmarx bietet ein großartiges Werkzeug, um Ihren Apex- und Visualforce-Code zu sichern. Es ist einfach in Ihre Salesforce-Organisation zu integrieren und liefert Ihnen einen vollständigen Bericht. Dieser Bericht enthält die Punkte der Änderungen und was zu ändern ist. Ich persönlich empfehle dieses Tool für Ihre Anwendungs- und Code-Sicherheit.
  2. Codescan: Code-Analyse-Tool für Salesforce. Dieses AppExchange-Tool ist wirklich einfach zu verwenden und in Ihrer Salesforce-Organisation zu installieren. Es hilft Entwicklern, Fehler zu identifizieren und die Qualität Ihres Codes zu erhöhen. Dieses Tool bietet eine unglaubliche Benutzeroberfläche zur Analyse des Apex-Codes Ihrer Org.
  3. PMD, Source Code Analyzer: PMD ist auch ein empfohlenes Tool für Ihren Apex-Code, da es leicht die Fehler Ihres Apex-Codes auffängt und Einblicke gibt, wie Sie diese Fehler beseitigen können. Es durchsucht die unbenutzten Variablen, leere Catch-Blöcke und unnötige Objekterstellung. Dieses Tool hilft Ihnen, Ihren Code sowohl in Apex als auch in Javascript und Visualforce zu bereinigen.
  4. Clayton: Clayton ist ein Tool der nächsten Generation, das alles tut, was Sie für Ihre Salesforce-Anwendung benötigen, um die beste zu sein. Es ist ein PMD-Wrapper, und es ist sehr einfach einzurichten und zu benutzen. Clayton integriert sich in Ihre Code-Repositories und setzt Qualitäts- und Sicherheitsstandards in Ihrer gesamten Organisation durch, während Ihre Anwendungen erstellt werden. Es bietet Ihnen nicht nur Analysen zu Apex, sondern auch zu Lightning-Komponenten-Code.
  5. Code Climate: Dieses Tool automatisiert Code-Reviews für Testabdeckung, Wartbarkeit und mehr, so dass Sie Zeit sparen können. Es bietet Ihnen Echtzeit-Feedback zu Ihrem Code, um Ihnen zu helfen, guten Code zu bewahren, während Sie fortfahren. Es bietet außerdem eine zeilenweise Testabdeckung, die in Ihr Github-Repo integriert ist, eine lokale Analyse und eine Teamverwaltung mit Sichtbarkeit der Berechtigungen.

Mehr von Abhi

 

Alex Sutherland

 

Unsere letzte Antwort kommt von Alex Sutherland. Alex ist ein leitender Salesforce Solution-Architekt mit langjähriger Erfahrung in der Entwicklung und Bereitstellung einzigartiger Unternehmenslösungen auf der Salesforce-Plattform für den öffentlichen Sektor. Folgen Sie Alex auf Twitter und gewinnen Sie weitere Einblicke von einem führenden Technologen, Strategen und Verfechter von Salesforce. Hier ist, was Alex über seinen Code-Review-Prozess zu sagen hatte.

 

Es gibt drei wichtige Toolsets, die Entwicklerteams bei der Implementierung von Änderungen in einer Salesforce-Umgebung verwenden können: Versionsverwaltung, statische Codeanalyse und Release-Management. Das wichtigste Tool-Set zur Verfolgung und Überprüfung von Änderungen an Metadaten und Code ist eine robuste verteilte Versionsverwaltungslösung mit einer Web-Oberfläche wie Github, Gitlab, oder BitBucket. Ich benutze derzeit Github und habe BitBucket in der Vergangenheit für andere Projekte verwendet. Mit einem Git-Repository-System, das über eine Web-Benutzeroberfläche verfügt, können Sie visuell verfolgen, was im Repo mit allen Zweigen und Commits und Diffs im Code vor sich geht. Die Möglichkeit, die Unterschiede im Code und in den Metadaten visuell vergleichen zu können, ist ein großer Vorteil. Immer mehr Salesforce-Kunden müssen verteilte Versionsverwaltungssysteme einsetzen, insbesondere solche, die die Implementierung von Salesforce DX in ihrem Entwicklungsprozess erwarten.

 

Zusätzlich zu Git ist es in einem kollaborativen Entwicklungsteam absolut notwendig, eine Entwicklungsumgebung zu haben, die es Ihren Teammitgliedern leicht macht, sich auf ihre Änderungen am Repo festzulegen. Mein aktueller Favorit ist Illuminated Cloud, ein Plugin für die JetBrains IntelliJ und WebStorm IDEs. Die enge Integration mit dem Git Repo wird die Durchgängigkeit und Qualität der Commits für das Repo durch das Entwicklungsteam drastisch erhöhen.

 

Schließlich würde ich auch die Verwendung eines statischen Codeanalysetools wie Checkmarx, PMD oder Panaya empfehlen. Statische Codeanalyse hilft, problematische Design-Pattern und Sicherheitslücken im Code zu identifizieren. Diese Lücken in der Codebasis zu einem frühen Zeitpunkt im Entwicklungszyklus zu finden, erhöht die Wahrscheinlichkeit, dass sie behoben werden, während dies noch kosteneffizient ist.

 

Eine letzte Sache, die meines Erachtens für die Salesforce-Entwickler-Community von entscheidender Bedeutung ist, ist die Bedeutsamkeit der Unit-Testabdeckung und die Vorteile von robusten Testfällen und Testreihen. Einige Mitglieder der Salesforce-Community sind unzufrieden mit dem Auftrag, Unit-Tests für ihren Code zu schreiben, um ihn in den Produktivbetrieb zu überführen. Allerdings unterschätzen sie den Wert der richtigen Unit-Tests und wie viel Aufwand und Kosten ihnen diese Tests ersparen können, wenn sie richtig durchgeführt werden. Unit-Tests sollten die letzte Versicherung sein, dass Veränderungen an der Umgebung die erwarteten Ergebnisse bringen und sind ein wesentlicher Bestandteil eines robusten Release-Management-Prozesses.

 

Diese Frage stellten wir auch unserer eigenen Salesforce-Expertin Ira Dizengof. Ira fügte ein letztes Element zu einem erfolgreichen Salesforce-Code-Review-Prozess hinzu, und das war die Wichtigkeit, jede Änderung, die Sie an Ihrem Code vornehmen möchten, mit einer Impact-Analyse zu versehen. Mit der Impact-Analyse können Business-Analysten, Entwickler und Administratoren die Auswirkungen des gesamten entwickelten Codes verstehen, bevor sie anfangen, irgendetwas zu entwickeln. Durch die Anzeige einer Liste aller betroffenen Komponenten sowie deren Nutzungsstatistiken können Teams jede Änderung besser priorisieren.

 

Ira vertraut auf Panaya ForeSight for Salesforce, um nicht nur die Qualität des Codes, sondern auch die Qualität der Releases sicherzustellen. Mit Release Dyanamix erhalten die Teams Transparenz und Kontrolle über alle SFDC-Projekte und -Releases in Echtzeit. Mit einem detaillierten Risiko-Cockpit haben Teams eine ganzheitliche Sicht auf das gesamte Projekt bzw. Release und dessen Risikobereiche wie Anforderungserfüllung, Entwicklung, Testplanabdeckung sowie Test- und Fehlerausführungsfortschritt.

 

Erfahren Sie mehr über unsere Demo-Jam-gewinnende Lösung Panaya ForeSight hier in unserem neuesten eBook, 5 Tipps für sichere und schnelle Salesforce.com-Systemänderungen.

 

SFDC-eBook herunterladen

I Want Risk-Free Change

×