SlideShare a Scribd company logo
1 of 27
Download to read offline
Discover a lightning
fast way to debug in
Salesforce with RFLIB
Hello!
My name is Johannes Fischer
Over 10 years of experience in
the Salesforce ecosystem.
Working as a consultant.
Developer at heart.
2Contact me @j_h_fischer
Something is wrong!
Can you fix it?
3
“ The goal of RFLIB is to help
organizations to create
clean, production-ready
code with a high level of
operational supportability.
4
What is RFLIB?
5
https://github.com/j-fischer/rflib
The library has 3 core features (and packages)
1. Logging Framework
2. Trigger Framework
3. Feature Switches
6
What problems do those solve?
Running Blind
Trying to
investigate an
issue with
nothing but a
user’s description
to start with.
Silos
Many libraries
work only in
isolation.
Integrating them
complicates the
upgrade path.
7
Backend Only
Many libraries
are built for
Apex. Aura and
LWC are left
behind.
Code Only
Libraries are
often built for
developers,
missing valuable
configuration
options.
1. Logging in Salesforce
Creating full org transparency
9
Let your code tell a story
Logging is a bit of an art
10
Creating an enriched
stacktrace of your code
● Cover as many code
paths as possible
● Combine log
statements
● Print important
variables
● Choose appropriate
log levels
How is RFLIB’s Logging Framework different?
▪ Full support for logging in LWC and Aura
▪ Collection of log statements
▪ Rich configuration through Custom Settings
▪ Utility classes such as rflib_HttpRequest
▪ Custom actions for Process Builder and Flow
Built using Platform Events, comes with real-time
dashboard and e-mail notifications.
11
Configure every aspect of your log experience
12
Best practices for Apex
13
Creating a robust logging
structure just takes a few
steps:
● Use Factory to
instantiate batched
Logger
● Use try-catch for
action method
● Log generously
● Finalize by publishing
batched events
Best practices for Aura
14
Minimal boilerplate code
for maximum
transparency:
● Define the logger
component with
unique name
● Retrieve logger in
every controller and
helper function
● Log generously
Best practices for LWC
15
Minimal boilerplate code
for maximum
transparency:
● Create logger using
factory method
● Log generously
● Note the different
syntax for message
arguments
Follow logs in real-time
16
Everything you need to
start your investigation in
one simple UI
● Navigate using
pagination
● Filter using full text
search
● See user details for
every selected log
● Download log file
with a single click
● Change connection
mode when
needed
Demo
Dreamhouse
2. Trigger Framework
Controlling the flow of your triggers
An experience for developers and admins
Fully Decoupled
Trigger handlers work
in isolation, which
makes testing a lot
easier.
Fully Configurable
Use Custom Metadata
activate/deactivate
triggers, define their
execution order, error
handling and more.
Fully Transparent
All classes of the
Trigger Framework
have logging included.
19
Configure every aspect of your trigger experience
20
3. Feature Switches
Configure the behaviour of your app
App Builder Friendly
Fully supported in Flow
Builder through Get
Records or Apex
Action. Use in
formulas, i.e.
Validation Rules
An experience for developers and admins
Fully Configurable
Use Custom Metadata
activate/deactivate
feature switches.
Supports hierarchical
configurations.
Use in Both Worlds
Easy access to validate
features switches in
Apex, Aura, and LWC.
22
Story Time
23
Faster Development
Find more bugs, and faster, during development.
More Control
Configure and deploy your application’s behaviour.
Faster Prod Support
Know about problems before your users report them.
24
25
Version 2.x is here !!!
Install using browser
RFLIB: https://login.salesforce.com/packaging/
installPackage.apexp?p0=04t3h000004jmoqAAA
RFLIB-FS: https://login.salesforce.com/packaging/
installPackage.apexp?p0=04t3h000004jmovAAA
RFLIB-TF: https://login.salesforce.com/packaging/
installPackage.apexp?p0=04t3h000004bcWpAAI
26
Thanks!
Any questions?
You can find me at:
▪ @j_h_fischer
▪ johanneshfischer.wordpress.com
▪ https://github.com/j-fischer/rflib
Credits
Special thanks to all the people who made and
released these awesome resources for free:
▪ Presentation template by SlidesCarnival
▪ Photographs by Unsplash & Pexels
▪ Icons by IconsDB
27

More Related Content

What's hot

Introduction to perl
Introduction to perlIntroduction to perl
Introduction to perlsana mateen
 
Robot Framework Introduction
Robot Framework IntroductionRobot Framework Introduction
Robot Framework IntroductionPekka Klärck
 
Dynamic extension for alfresco
Dynamic extension for alfrescoDynamic extension for alfresco
Dynamic extension for alfrescoXeniT
 
Presentación rs232 java
Presentación rs232 javaPresentación rs232 java
Presentación rs232 javaJohn Rojas
 
Automated Integration Regression Testing
Automated Integration Regression TestingAutomated Integration Regression Testing
Automated Integration Regression TestingMichal Oravec
 
Robotframework Presentation - Pinoy Python Meetup 2011January12
Robotframework Presentation - Pinoy Python Meetup 2011January12Robotframework Presentation - Pinoy Python Meetup 2011January12
Robotframework Presentation - Pinoy Python Meetup 2011January12Franz Allan See
 
Mockoon - Create mock APIs in seconds
Mockoon - Create mock APIs in secondsMockoon - Create mock APIs in seconds
Mockoon - Create mock APIs in secondsMockoon
 
Introduction to Robot Framework
Introduction to Robot FrameworkIntroduction to Robot Framework
Introduction to Robot FrameworkCarl Su
 

What's hot (11)

Introduction to perl
Introduction to perlIntroduction to perl
Introduction to perl
 
Robot Framework Introduction
Robot Framework IntroductionRobot Framework Introduction
Robot Framework Introduction
 
Dynamic extension for alfresco
Dynamic extension for alfrescoDynamic extension for alfresco
Dynamic extension for alfresco
 
Composer intro
Composer introComposer intro
Composer intro
 
Polyglot Mule Transformers
Polyglot Mule TransformersPolyglot Mule Transformers
Polyglot Mule Transformers
 
Presentación rs232 java
Presentación rs232 javaPresentación rs232 java
Presentación rs232 java
 
Automated Integration Regression Testing
Automated Integration Regression TestingAutomated Integration Regression Testing
Automated Integration Regression Testing
 
inline function
inline functioninline function
inline function
 
Robotframework Presentation - Pinoy Python Meetup 2011January12
Robotframework Presentation - Pinoy Python Meetup 2011January12Robotframework Presentation - Pinoy Python Meetup 2011January12
Robotframework Presentation - Pinoy Python Meetup 2011January12
 
Mockoon - Create mock APIs in seconds
Mockoon - Create mock APIs in secondsMockoon - Create mock APIs in seconds
Mockoon - Create mock APIs in seconds
 
Introduction to Robot Framework
Introduction to Robot FrameworkIntroduction to Robot Framework
Introduction to Robot Framework
 

Similar to Discover a lightning fast way to debug in Salesforce with RFLIB - Summer 20

Centralized logging system using mongoDB
Centralized logging system using mongoDBCentralized logging system using mongoDB
Centralized logging system using mongoDBVivek Parihar
 
Programming tools for developers
Programming tools for developersProgramming tools for developers
Programming tools for developersBBVA API Market
 
Frameworkless CLI app in PHP
Frameworkless CLI app in PHPFrameworkless CLI app in PHP
Frameworkless CLI app in PHPMax Bodnar
 
cLoki: Like Loki but for ClickHouse
cLoki: Like Loki but for ClickHousecLoki: Like Loki but for ClickHouse
cLoki: Like Loki but for ClickHouseAltinity Ltd
 
DevOps - A Purpose for an Institution.pdf
DevOps - A Purpose for an Institution.pdfDevOps - A Purpose for an Institution.pdf
DevOps - A Purpose for an Institution.pdfVishwas N
 
Advantages of golang development services & 10 most used go frameworks
Advantages of golang development services & 10 most used go frameworksAdvantages of golang development services & 10 most used go frameworks
Advantages of golang development services & 10 most used go frameworksKaty Slemon
 
Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin  Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin Kuberton
 
Advanced PHP Web Development Tools in 2015
Advanced PHP Web Development Tools in 2015Advanced PHP Web Development Tools in 2015
Advanced PHP Web Development Tools in 2015iScripts
 
Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015Mirco Hering
 
Fighting legacy with hexagonal architecture and frameworkless php
Fighting legacy with hexagonal architecture and frameworkless phpFighting legacy with hexagonal architecture and frameworkless php
Fighting legacy with hexagonal architecture and frameworkless phpFabio Pellegrini
 
Functional testing with behat
Functional testing with behatFunctional testing with behat
Functional testing with behatTahmina Khatoon
 
Streaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit LogStreaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit LogJoe Stein
 
Livecode widget course
Livecode widget courseLivecode widget course
Livecode widget coursecrazyaxe
 
Leverage the power of Open Source in your company
Leverage the power of Open Source in your company Leverage the power of Open Source in your company
Leverage the power of Open Source in your company Guillaume POTIER
 
Gwt and JSR 269's Pluggable Annotation Processing API
Gwt and JSR 269's Pluggable Annotation Processing APIGwt and JSR 269's Pluggable Annotation Processing API
Gwt and JSR 269's Pluggable Annotation Processing APIArnaud Tournier
 

Similar to Discover a lightning fast way to debug in Salesforce with RFLIB - Summer 20 (20)

Centralized logging system using mongoDB
Centralized logging system using mongoDBCentralized logging system using mongoDB
Centralized logging system using mongoDB
 
Programming tools for developers
Programming tools for developersProgramming tools for developers
Programming tools for developers
 
Top 6 php framework
Top 6 php frameworkTop 6 php framework
Top 6 php framework
 
Frameworkless CLI app in PHP
Frameworkless CLI app in PHPFrameworkless CLI app in PHP
Frameworkless CLI app in PHP
 
cLoki: Like Loki but for ClickHouse
cLoki: Like Loki but for ClickHousecLoki: Like Loki but for ClickHouse
cLoki: Like Loki but for ClickHouse
 
DevOps - A Purpose for an Institution.pdf
DevOps - A Purpose for an Institution.pdfDevOps - A Purpose for an Institution.pdf
DevOps - A Purpose for an Institution.pdf
 
WoMakersCode 2016 - Shit Happens
WoMakersCode 2016 -  Shit HappensWoMakersCode 2016 -  Shit Happens
WoMakersCode 2016 - Shit Happens
 
robot framework1.pptx
robot framework1.pptxrobot framework1.pptx
robot framework1.pptx
 
Advantages of golang development services & 10 most used go frameworks
Advantages of golang development services & 10 most used go frameworksAdvantages of golang development services & 10 most used go frameworks
Advantages of golang development services & 10 most used go frameworks
 
Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin  Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin
 
Advanced PHP Web Development Tools in 2015
Advanced PHP Web Development Tools in 2015Advanced PHP Web Development Tools in 2015
Advanced PHP Web Development Tools in 2015
 
Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015Dev Ops for systems of record - Talk at Agile Australia 2015
Dev Ops for systems of record - Talk at Agile Australia 2015
 
Java Logging
Java LoggingJava Logging
Java Logging
 
Fighting legacy with hexagonal architecture and frameworkless php
Fighting legacy with hexagonal architecture and frameworkless phpFighting legacy with hexagonal architecture and frameworkless php
Fighting legacy with hexagonal architecture and frameworkless php
 
Flask
FlaskFlask
Flask
 
Functional testing with behat
Functional testing with behatFunctional testing with behat
Functional testing with behat
 
Streaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit LogStreaming Processing with a Distributed Commit Log
Streaming Processing with a Distributed Commit Log
 
Livecode widget course
Livecode widget courseLivecode widget course
Livecode widget course
 
Leverage the power of Open Source in your company
Leverage the power of Open Source in your company Leverage the power of Open Source in your company
Leverage the power of Open Source in your company
 
Gwt and JSR 269's Pluggable Annotation Processing API
Gwt and JSR 269's Pluggable Annotation Processing APIGwt and JSR 269's Pluggable Annotation Processing API
Gwt and JSR 269's Pluggable Annotation Processing API
 

Recently uploaded

Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 

Recently uploaded (20)

Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 

Discover a lightning fast way to debug in Salesforce with RFLIB - Summer 20

  • 1. Discover a lightning fast way to debug in Salesforce with RFLIB
  • 2. Hello! My name is Johannes Fischer Over 10 years of experience in the Salesforce ecosystem. Working as a consultant. Developer at heart. 2Contact me @j_h_fischer
  • 3. Something is wrong! Can you fix it? 3
  • 4. “ The goal of RFLIB is to help organizations to create clean, production-ready code with a high level of operational supportability. 4
  • 6. The library has 3 core features (and packages) 1. Logging Framework 2. Trigger Framework 3. Feature Switches 6
  • 7. What problems do those solve? Running Blind Trying to investigate an issue with nothing but a user’s description to start with. Silos Many libraries work only in isolation. Integrating them complicates the upgrade path. 7 Backend Only Many libraries are built for Apex. Aura and LWC are left behind. Code Only Libraries are often built for developers, missing valuable configuration options.
  • 8. 1. Logging in Salesforce Creating full org transparency
  • 9. 9 Let your code tell a story
  • 10. Logging is a bit of an art 10 Creating an enriched stacktrace of your code ● Cover as many code paths as possible ● Combine log statements ● Print important variables ● Choose appropriate log levels
  • 11. How is RFLIB’s Logging Framework different? ▪ Full support for logging in LWC and Aura ▪ Collection of log statements ▪ Rich configuration through Custom Settings ▪ Utility classes such as rflib_HttpRequest ▪ Custom actions for Process Builder and Flow Built using Platform Events, comes with real-time dashboard and e-mail notifications. 11
  • 12. Configure every aspect of your log experience 12
  • 13. Best practices for Apex 13 Creating a robust logging structure just takes a few steps: ● Use Factory to instantiate batched Logger ● Use try-catch for action method ● Log generously ● Finalize by publishing batched events
  • 14. Best practices for Aura 14 Minimal boilerplate code for maximum transparency: ● Define the logger component with unique name ● Retrieve logger in every controller and helper function ● Log generously
  • 15. Best practices for LWC 15 Minimal boilerplate code for maximum transparency: ● Create logger using factory method ● Log generously ● Note the different syntax for message arguments
  • 16. Follow logs in real-time 16 Everything you need to start your investigation in one simple UI ● Navigate using pagination ● Filter using full text search ● See user details for every selected log ● Download log file with a single click ● Change connection mode when needed
  • 18. 2. Trigger Framework Controlling the flow of your triggers
  • 19. An experience for developers and admins Fully Decoupled Trigger handlers work in isolation, which makes testing a lot easier. Fully Configurable Use Custom Metadata activate/deactivate triggers, define their execution order, error handling and more. Fully Transparent All classes of the Trigger Framework have logging included. 19
  • 20. Configure every aspect of your trigger experience 20
  • 21. 3. Feature Switches Configure the behaviour of your app
  • 22. App Builder Friendly Fully supported in Flow Builder through Get Records or Apex Action. Use in formulas, i.e. Validation Rules An experience for developers and admins Fully Configurable Use Custom Metadata activate/deactivate feature switches. Supports hierarchical configurations. Use in Both Worlds Easy access to validate features switches in Apex, Aura, and LWC. 22
  • 24. Faster Development Find more bugs, and faster, during development. More Control Configure and deploy your application’s behaviour. Faster Prod Support Know about problems before your users report them. 24
  • 25. 25 Version 2.x is here !!! Install using browser RFLIB: https://login.salesforce.com/packaging/ installPackage.apexp?p0=04t3h000004jmoqAAA RFLIB-FS: https://login.salesforce.com/packaging/ installPackage.apexp?p0=04t3h000004jmovAAA RFLIB-TF: https://login.salesforce.com/packaging/ installPackage.apexp?p0=04t3h000004bcWpAAI
  • 26. 26 Thanks! Any questions? You can find me at: ▪ @j_h_fischer ▪ johanneshfischer.wordpress.com ▪ https://github.com/j-fischer/rflib
  • 27. Credits Special thanks to all the people who made and released these awesome resources for free: ▪ Presentation template by SlidesCarnival ▪ Photographs by Unsplash & Pexels ▪ Icons by IconsDB 27