SlideShare a Scribd company logo
Live Coding with Salesforce Developers
July 18th, 2019
Adding CI to an Existing Salesforce Project
with Kevin Poorman & Alix Ohrt
Alix Ohrt
Developer Evangelist, Salesforce.com
Is able to dereference null pointers in a
single bound.
Live Coding with Alix Ohrt & Kevin Poorman
Kevin Poorman @codefriar
Salesforce Technology Lead,
Boston Scientific
votedMostLikelyToUseExtraLong
AndDescriptiveVariableNames
Introductions
The. Best. Slide. Ever.
Explanation of the problem
Coding our solution
Recap
Talking about what we’re gonna talk about. #meta
Today’s Agenda
This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the
assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we
make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber
growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief,
any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services.
The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new
products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays
in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any possible mergers and acquisitions, the
immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth,
new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger
enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form
10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important
disclosures are available on the SEC Filings section of the Investor Information section of our Website.
Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be
delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available.
Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
Statement under the Private Securities Litigation Reform Act of 1995
Forward-Looking Statement
Continuous Integration is the overall term for
tools that help automate parts of your
development workflow.
What is CI?
What can Continuous Integration do for me?
Automate things like:
Static Code Analysis.
Running Unit Tests.
Stylistic Consistency.
Notifications to other team mates.
Show me the money.
Continuous Integration can’t:
Rewrite your code to make it better.
Fix broken things.
Fix technical debt.
Fix broken architecture.
You mean it can’t do everything?
What can’t Continuous Integration do for me?
Goals:
Automatically run all unit tests on push.
Pre-commit hooks to format and lint code.
Partially automated code reviews for Static Code Analysis.
We’ll use:
Circle CI
Husky, Prettier, and Prettier-Apex
Codacy.com
Our solution.
OK, I’m in. How do I do this?
https://github.com/codefriar/ciWithAlixOhrt
We’re adding CI to this project:
This way to the code
In case Kevin forgets, this is where we (finally) get away
from the slides and to the coding bits.
Today we
Used different automation tools to automate different aspects of our code lifecycle.
CircleCI to automatically run unit tests in a new scratch org
Husky, along with Prettier and various Linters to consistently format and lint our code.
Codacy.com to automatically ‘review’ code with static analysis tools like Apex-PMD
Proved we can type… sometimes.
Key Takeaways
CI can automate parts of your development that you’d otherwise not dedicate time to.
Like:
Running the full suite of unit tests
Formatting and linting code
Static code analysis
It can’t, however, fix the issues it brings to the surface.
It’s only as good as the unit tests and developers you have.
Remember this!
Complete the CI Trailmix:
http://bit.ly/LiveCodingCI
trailhead.salesforce.com
Live Coding with Salesforce Developers: Adding CI to Your Salesforce Project

More Related Content

What's hot

Doc is Dead! How Walkthroughs Changed Salesforce's Content Strategy
Doc is Dead! How Walkthroughs Changed Salesforce's Content StrategyDoc is Dead! How Walkthroughs Changed Salesforce's Content Strategy
Doc is Dead! How Walkthroughs Changed Salesforce's Content Strategy
Gavin Austin
 
Easy No-Code Integrations with External Services and Visual Flow
Easy No-Code Integrations with External Services and Visual FlowEasy No-Code Integrations with External Services and Visual Flow
Easy No-Code Integrations with External Services and Visual Flow
Salesforce Developers
 
Salesforce at Continuous Delivery Foundation Summit
Salesforce at Continuous Delivery Foundation SummitSalesforce at Continuous Delivery Foundation Summit
Salesforce at Continuous Delivery Foundation Summit
Mark Interrante
 
Lightning Platform Product Managers: Ask Us Anything!
Lightning Platform Product Managers: Ask Us Anything!Lightning Platform Product Managers: Ask Us Anything!
Lightning Platform Product Managers: Ask Us Anything!
Salesforce Developers
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
Salesforce Developers
 
Build Apple Watch Apps for the Enterprise
Build Apple Watch Apps for the EnterpriseBuild Apple Watch Apps for the Enterprise
Build Apple Watch Apps for the Enterprise
Salesforce Developers
 
Force.com Friday: Intro to Force.com Slides
Force.com Friday: Intro to Force.com SlidesForce.com Friday: Intro to Force.com Slides
Force.com Friday: Intro to Force.com Slides
Salesforce Developers
 
S1 Tour Paris Developpeurs
S1 Tour Paris DeveloppeursS1 Tour Paris Developpeurs
S1 Tour Paris Developpeurs
Peter Chittum
 
Salesforce Known Issues: The Lifecycle of a Bug
Salesforce Known Issues: The Lifecycle of a BugSalesforce Known Issues: The Lifecycle of a Bug
Salesforce Known Issues: The Lifecycle of a Bug
Salesforce Developers
 
#DF17Recap series: Make apps smarter with Einstein
#DF17Recap series: Make apps smarter with Einstein#DF17Recap series: Make apps smarter with Einstein
#DF17Recap series: Make apps smarter with Einstein
Salesforce Developers
 
Agile2013 - How Writers Can Thrive in Agile Software Development
Agile2013 - How Writers Can Thrive in Agile Software DevelopmentAgile2013 - How Writers Can Thrive in Agile Software Development
Agile2013 - How Writers Can Thrive in Agile Software Development
Gavin Austin
 
Write Powerful Communication to Get Your Stakeholder's Attention by Andrea Ho...
Write Powerful Communication to Get Your Stakeholder's Attention by Andrea Ho...Write Powerful Communication to Get Your Stakeholder's Attention by Andrea Ho...
Write Powerful Communication to Get Your Stakeholder's Attention by Andrea Ho...
Salesforce Admins
 
#DF17Recap series: Integrate apps easier with the Salesforce platform
#DF17Recap series: Integrate apps easier with the Salesforce platform#DF17Recap series: Integrate apps easier with the Salesforce platform
#DF17Recap series: Integrate apps easier with the Salesforce platform
Salesforce Developers
 
Rollin' Out Lightnin' Ain't All That Frightenin' by Jon Barlow
Rollin' Out Lightnin' Ain't All That Frightenin' by Jon BarlowRollin' Out Lightnin' Ain't All That Frightenin' by Jon Barlow
Rollin' Out Lightnin' Ain't All That Frightenin' by Jon Barlow
Salesforce Admins
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in Salesforce
Salesforce Developers
 
Summer '18 Developer Highlights
Summer '18 Developer HighlightsSummer '18 Developer Highlights
Summer '18 Developer Highlights
Salesforce Developers
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
Salesforce Developers
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web Components
Salesforce Developers
 
Scaling Developer Efforts with Salesforce Marketing Cloud
Scaling Developer Efforts with Salesforce Marketing CloudScaling Developer Efforts with Salesforce Marketing Cloud
Scaling Developer Efforts with Salesforce Marketing Cloud
Salesforce Developers
 
How to Choose the Right Automation Tool by Jonathan Hackworth
How to Choose the Right Automation Tool by Jonathan Hackworth How to Choose the Right Automation Tool by Jonathan Hackworth
How to Choose the Right Automation Tool by Jonathan Hackworth
Salesforce Admins
 

What's hot (20)

Doc is Dead! How Walkthroughs Changed Salesforce's Content Strategy
Doc is Dead! How Walkthroughs Changed Salesforce's Content StrategyDoc is Dead! How Walkthroughs Changed Salesforce's Content Strategy
Doc is Dead! How Walkthroughs Changed Salesforce's Content Strategy
 
Easy No-Code Integrations with External Services and Visual Flow
Easy No-Code Integrations with External Services and Visual FlowEasy No-Code Integrations with External Services and Visual Flow
Easy No-Code Integrations with External Services and Visual Flow
 
Salesforce at Continuous Delivery Foundation Summit
Salesforce at Continuous Delivery Foundation SummitSalesforce at Continuous Delivery Foundation Summit
Salesforce at Continuous Delivery Foundation Summit
 
Lightning Platform Product Managers: Ask Us Anything!
Lightning Platform Product Managers: Ask Us Anything!Lightning Platform Product Managers: Ask Us Anything!
Lightning Platform Product Managers: Ask Us Anything!
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
 
Build Apple Watch Apps for the Enterprise
Build Apple Watch Apps for the EnterpriseBuild Apple Watch Apps for the Enterprise
Build Apple Watch Apps for the Enterprise
 
Force.com Friday: Intro to Force.com Slides
Force.com Friday: Intro to Force.com SlidesForce.com Friday: Intro to Force.com Slides
Force.com Friday: Intro to Force.com Slides
 
S1 Tour Paris Developpeurs
S1 Tour Paris DeveloppeursS1 Tour Paris Developpeurs
S1 Tour Paris Developpeurs
 
Salesforce Known Issues: The Lifecycle of a Bug
Salesforce Known Issues: The Lifecycle of a BugSalesforce Known Issues: The Lifecycle of a Bug
Salesforce Known Issues: The Lifecycle of a Bug
 
#DF17Recap series: Make apps smarter with Einstein
#DF17Recap series: Make apps smarter with Einstein#DF17Recap series: Make apps smarter with Einstein
#DF17Recap series: Make apps smarter with Einstein
 
Agile2013 - How Writers Can Thrive in Agile Software Development
Agile2013 - How Writers Can Thrive in Agile Software DevelopmentAgile2013 - How Writers Can Thrive in Agile Software Development
Agile2013 - How Writers Can Thrive in Agile Software Development
 
Write Powerful Communication to Get Your Stakeholder's Attention by Andrea Ho...
Write Powerful Communication to Get Your Stakeholder's Attention by Andrea Ho...Write Powerful Communication to Get Your Stakeholder's Attention by Andrea Ho...
Write Powerful Communication to Get Your Stakeholder's Attention by Andrea Ho...
 
#DF17Recap series: Integrate apps easier with the Salesforce platform
#DF17Recap series: Integrate apps easier with the Salesforce platform#DF17Recap series: Integrate apps easier with the Salesforce platform
#DF17Recap series: Integrate apps easier with the Salesforce platform
 
Rollin' Out Lightnin' Ain't All That Frightenin' by Jon Barlow
Rollin' Out Lightnin' Ain't All That Frightenin' by Jon BarlowRollin' Out Lightnin' Ain't All That Frightenin' by Jon Barlow
Rollin' Out Lightnin' Ain't All That Frightenin' by Jon Barlow
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in Salesforce
 
Summer '18 Developer Highlights
Summer '18 Developer HighlightsSummer '18 Developer Highlights
Summer '18 Developer Highlights
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web Components
 
Scaling Developer Efforts with Salesforce Marketing Cloud
Scaling Developer Efforts with Salesforce Marketing CloudScaling Developer Efforts with Salesforce Marketing Cloud
Scaling Developer Efforts with Salesforce Marketing Cloud
 
How to Choose the Right Automation Tool by Jonathan Hackworth
How to Choose the Right Automation Tool by Jonathan Hackworth How to Choose the Right Automation Tool by Jonathan Hackworth
How to Choose the Right Automation Tool by Jonathan Hackworth
 

Similar to Live Coding with Salesforce Developers: Adding CI to Your Salesforce Project

CodeLive with Cynthia Thomas - Refactoring data dependent code.
CodeLive with Cynthia Thomas - Refactoring data dependent code.CodeLive with Cynthia Thomas - Refactoring data dependent code.
CodeLive with Cynthia Thomas - Refactoring data dependent code.
JackGuo20
 
An Inside Look at a Large-scale Writer-driven REST API Doc Solution at Salesf...
An Inside Look at a Large-scale Writer-driven REST API Doc Solution at Salesf...An Inside Look at a Large-scale Writer-driven REST API Doc Solution at Salesf...
An Inside Look at a Large-scale Writer-driven REST API Doc Solution at Salesf...
Pronovix
 
CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...
CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...
CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...
JackGuo20
 
Dreamforce 2014 - Salesforce Python SDK for REST/SOAP APIs
Dreamforce 2014 - Salesforce Python SDK for REST/SOAP APIsDreamforce 2014 - Salesforce Python SDK for REST/SOAP APIs
Dreamforce 2014 - Salesforce Python SDK for REST/SOAP APIs
Hormoz Tarevern
 
Code live with ryan headley code reviews done right
Code live with ryan headley   code reviews done rightCode live with ryan headley   code reviews done right
Code live with ryan headley code reviews done right
JackGuo20
 
Salesforce Innovates Faster with Agile - You Can Too
Salesforce Innovates Faster with Agile - You Can TooSalesforce Innovates Faster with Agile - You Can Too
Salesforce Innovates Faster with Agile - You Can Too
Dreamforce
 
Developer Preview Live – Release Readiness LIVE, Spring '18
Developer Preview Live – Release Readiness LIVE, Spring '18Developer Preview Live – Release Readiness LIVE, Spring '18
Developer Preview Live – Release Readiness LIVE, Spring '18
Salesforce Developers
 
Build Engaging Community Experiences with Community Cloud
Build Engaging Community Experiences with Community CloudBuild Engaging Community Experiences with Community Cloud
Build Engaging Community Experiences with Community Cloud
Salesforce Developers
 
Build Better Communities with Lightning
Build Better Communities with LightningBuild Better Communities with Lightning
Build Better Communities with Lightning
Salesforce Developers
 
Code live with Brian Kwong - Visualforce to Lwc
Code live with Brian Kwong - Visualforce to LwcCode live with Brian Kwong - Visualforce to Lwc
Code live with Brian Kwong - Visualforce to Lwc
JackGuo20
 
Modern Architectures: The Road to App Cloud 2020
Modern Architectures: The Road to App Cloud 2020Modern Architectures: The Road to App Cloud 2020
Modern Architectures: The Road to App Cloud 2020
Dreamforce
 
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
Sudipta Deb ☁
 
Code live with kevin o'hara lwc oss dashboard
Code live with kevin o'hara   lwc oss dashboardCode live with kevin o'hara   lwc oss dashboard
Code live with kevin o'hara lwc oss dashboard
JackGuo20
 
Gesture Controlled Interactions with Platform Events and IoT Explorer
Gesture Controlled Interactions with Platform Events and IoT ExplorerGesture Controlled Interactions with Platform Events and IoT Explorer
Gesture Controlled Interactions with Platform Events and IoT Explorer
Salesforce Developers
 
Using Python on Heroku and Force.com Canvas to Enhance Salesforce.com
Using Python on Heroku and Force.com Canvas to Enhance Salesforce.comUsing Python on Heroku and Force.com Canvas to Enhance Salesforce.com
Using Python on Heroku and Force.com Canvas to Enhance Salesforce.com
Salesforce Developers
 
Modern Architectures: How IoT will Transform and Disrupt your Industry
Modern Architectures: How IoT will Transform and Disrupt your IndustryModern Architectures: How IoT will Transform and Disrupt your Industry
Modern Architectures: How IoT will Transform and Disrupt your Industry
Dreamforce
 
Learn about the latest innovations straight from dreamforce'18
Learn about the latest innovations straight from dreamforce'18Learn about the latest innovations straight from dreamforce'18
Learn about the latest innovations straight from dreamforce'18
Salesforce - Sweden, Denmark, Norway
 
Community Cloud: New in Summer ‘18
Community Cloud: New in Summer ‘18Community Cloud: New in Summer ‘18
Community Cloud: New in Summer ‘18
Salesforce Developers
 
Integrating with salesforce
Integrating with salesforceIntegrating with salesforce
Integrating with salesforce
Mark Adcock
 
Live Coding with Salesforce Developers: Decoupling your org with Triggers
Live Coding with Salesforce Developers: Decoupling your org with TriggersLive Coding with Salesforce Developers: Decoupling your org with Triggers
Live Coding with Salesforce Developers: Decoupling your org with Triggers
Developer Force
 

Similar to Live Coding with Salesforce Developers: Adding CI to Your Salesforce Project (20)

CodeLive with Cynthia Thomas - Refactoring data dependent code.
CodeLive with Cynthia Thomas - Refactoring data dependent code.CodeLive with Cynthia Thomas - Refactoring data dependent code.
CodeLive with Cynthia Thomas - Refactoring data dependent code.
 
An Inside Look at a Large-scale Writer-driven REST API Doc Solution at Salesf...
An Inside Look at a Large-scale Writer-driven REST API Doc Solution at Salesf...An Inside Look at a Large-scale Writer-driven REST API Doc Solution at Salesf...
An Inside Look at a Large-scale Writer-driven REST API Doc Solution at Salesf...
 
CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...
CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...
CodeLive with Adam Daw - Building a mobile friendly geolocation aware candy t...
 
Dreamforce 2014 - Salesforce Python SDK for REST/SOAP APIs
Dreamforce 2014 - Salesforce Python SDK for REST/SOAP APIsDreamforce 2014 - Salesforce Python SDK for REST/SOAP APIs
Dreamforce 2014 - Salesforce Python SDK for REST/SOAP APIs
 
Code live with ryan headley code reviews done right
Code live with ryan headley   code reviews done rightCode live with ryan headley   code reviews done right
Code live with ryan headley code reviews done right
 
Salesforce Innovates Faster with Agile - You Can Too
Salesforce Innovates Faster with Agile - You Can TooSalesforce Innovates Faster with Agile - You Can Too
Salesforce Innovates Faster with Agile - You Can Too
 
Developer Preview Live – Release Readiness LIVE, Spring '18
Developer Preview Live – Release Readiness LIVE, Spring '18Developer Preview Live – Release Readiness LIVE, Spring '18
Developer Preview Live – Release Readiness LIVE, Spring '18
 
Build Engaging Community Experiences with Community Cloud
Build Engaging Community Experiences with Community CloudBuild Engaging Community Experiences with Community Cloud
Build Engaging Community Experiences with Community Cloud
 
Build Better Communities with Lightning
Build Better Communities with LightningBuild Better Communities with Lightning
Build Better Communities with Lightning
 
Code live with Brian Kwong - Visualforce to Lwc
Code live with Brian Kwong - Visualforce to LwcCode live with Brian Kwong - Visualforce to Lwc
Code live with Brian Kwong - Visualforce to Lwc
 
Modern Architectures: The Road to App Cloud 2020
Modern Architectures: The Road to App Cloud 2020Modern Architectures: The Road to App Cloud 2020
Modern Architectures: The Road to App Cloud 2020
 
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
Kitchener Salesforce Developer Group Event - Introduction to dev ops with Sal...
 
Code live with kevin o'hara lwc oss dashboard
Code live with kevin o'hara   lwc oss dashboardCode live with kevin o'hara   lwc oss dashboard
Code live with kevin o'hara lwc oss dashboard
 
Gesture Controlled Interactions with Platform Events and IoT Explorer
Gesture Controlled Interactions with Platform Events and IoT ExplorerGesture Controlled Interactions with Platform Events and IoT Explorer
Gesture Controlled Interactions with Platform Events and IoT Explorer
 
Using Python on Heroku and Force.com Canvas to Enhance Salesforce.com
Using Python on Heroku and Force.com Canvas to Enhance Salesforce.comUsing Python on Heroku and Force.com Canvas to Enhance Salesforce.com
Using Python on Heroku and Force.com Canvas to Enhance Salesforce.com
 
Modern Architectures: How IoT will Transform and Disrupt your Industry
Modern Architectures: How IoT will Transform and Disrupt your IndustryModern Architectures: How IoT will Transform and Disrupt your Industry
Modern Architectures: How IoT will Transform and Disrupt your Industry
 
Learn about the latest innovations straight from dreamforce'18
Learn about the latest innovations straight from dreamforce'18Learn about the latest innovations straight from dreamforce'18
Learn about the latest innovations straight from dreamforce'18
 
Community Cloud: New in Summer ‘18
Community Cloud: New in Summer ‘18Community Cloud: New in Summer ‘18
Community Cloud: New in Summer ‘18
 
Integrating with salesforce
Integrating with salesforceIntegrating with salesforce
Integrating with salesforce
 
Live Coding with Salesforce Developers: Decoupling your org with Triggers
Live Coding with Salesforce Developers: Decoupling your org with TriggersLive Coding with Salesforce Developers: Decoupling your org with Triggers
Live Coding with Salesforce Developers: Decoupling your org with Triggers
 

More from Developer Force

Developing Trusted Networks with Salesforce Blockchain
Developing Trusted Networks with Salesforce BlockchainDeveloping Trusted Networks with Salesforce Blockchain
Developing Trusted Networks with Salesforce Blockchain
Developer Force
 
Preview: Local Development for Lightning Web Components
Preview: Local Development for Lightning Web ComponentsPreview: Local Development for Lightning Web Components
Preview: Local Development for Lightning Web Components
Developer Force
 
Integrate with MuleSoft Anypoint
Integrate with MuleSoft AnypointIntegrate with MuleSoft Anypoint
Integrate with MuleSoft Anypoint
Developer Force
 
Get Started with the Lightning Platform
Get Started with the Lightning PlatformGet Started with the Lightning Platform
Get Started with the Lightning Platform
Developer Force
 
Meet Astro & Friends with Domenique Sillett-Buxton
Meet Astro & Friends with Domenique Sillett-BuxtonMeet Astro & Friends with Domenique Sillett-Buxton
Meet Astro & Friends with Domenique Sillett-Buxton
Developer Force
 
Salesforce Lightning Supersession (TDX18)
Salesforce Lightning Supersession (TDX18)Salesforce Lightning Supersession (TDX18)
Salesforce Lightning Supersession (TDX18)
Developer Force
 
Salesforce Lightning Customization Roadmap (TDX18)
Salesforce Lightning Customization Roadmap (TDX18)Salesforce Lightning Customization Roadmap (TDX18)
Salesforce Lightning Customization Roadmap (TDX18)
Developer Force
 
Salesforce Lightning Component Framework Roadmap (TDX18)
Salesforce Lightning Component Framework Roadmap (TDX18)Salesforce Lightning Component Framework Roadmap (TDX18)
Salesforce Lightning Component Framework Roadmap (TDX18)
Developer Force
 

More from Developer Force (8)

Developing Trusted Networks with Salesforce Blockchain
Developing Trusted Networks with Salesforce BlockchainDeveloping Trusted Networks with Salesforce Blockchain
Developing Trusted Networks with Salesforce Blockchain
 
Preview: Local Development for Lightning Web Components
Preview: Local Development for Lightning Web ComponentsPreview: Local Development for Lightning Web Components
Preview: Local Development for Lightning Web Components
 
Integrate with MuleSoft Anypoint
Integrate with MuleSoft AnypointIntegrate with MuleSoft Anypoint
Integrate with MuleSoft Anypoint
 
Get Started with the Lightning Platform
Get Started with the Lightning PlatformGet Started with the Lightning Platform
Get Started with the Lightning Platform
 
Meet Astro & Friends with Domenique Sillett-Buxton
Meet Astro & Friends with Domenique Sillett-BuxtonMeet Astro & Friends with Domenique Sillett-Buxton
Meet Astro & Friends with Domenique Sillett-Buxton
 
Salesforce Lightning Supersession (TDX18)
Salesforce Lightning Supersession (TDX18)Salesforce Lightning Supersession (TDX18)
Salesforce Lightning Supersession (TDX18)
 
Salesforce Lightning Customization Roadmap (TDX18)
Salesforce Lightning Customization Roadmap (TDX18)Salesforce Lightning Customization Roadmap (TDX18)
Salesforce Lightning Customization Roadmap (TDX18)
 
Salesforce Lightning Component Framework Roadmap (TDX18)
Salesforce Lightning Component Framework Roadmap (TDX18)Salesforce Lightning Component Framework Roadmap (TDX18)
Salesforce Lightning Component Framework Roadmap (TDX18)
 

Recently uploaded

Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
BibashShahi
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Neo4j
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
Fwdays
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 

Recently uploaded (20)

Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid ResearchHarnessing the Power of NLP and Knowledge Graphs for Opioid Research
Harnessing the Power of NLP and Knowledge Graphs for Opioid Research
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota"Choosing proper type of scaling", Olena Syrota
"Choosing proper type of scaling", Olena Syrota
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 

Live Coding with Salesforce Developers: Adding CI to Your Salesforce Project

  • 1. Live Coding with Salesforce Developers July 18th, 2019 Adding CI to an Existing Salesforce Project with Kevin Poorman & Alix Ohrt
  • 2. Alix Ohrt Developer Evangelist, Salesforce.com Is able to dereference null pointers in a single bound. Live Coding with Alix Ohrt & Kevin Poorman Kevin Poorman @codefriar Salesforce Technology Lead, Boston Scientific votedMostLikelyToUseExtraLong AndDescriptiveVariableNames
  • 3. Introductions The. Best. Slide. Ever. Explanation of the problem Coding our solution Recap Talking about what we’re gonna talk about. #meta Today’s Agenda
  • 4. This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of any litigation, risks associated with completed and any possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-K for the most recent fiscal year and in our quarterly report on Form 10-Q for the most recent fiscal quarter. These documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Website. Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements. Statement under the Private Securities Litigation Reform Act of 1995 Forward-Looking Statement
  • 5. Continuous Integration is the overall term for tools that help automate parts of your development workflow. What is CI?
  • 6. What can Continuous Integration do for me? Automate things like: Static Code Analysis. Running Unit Tests. Stylistic Consistency. Notifications to other team mates. Show me the money.
  • 7. Continuous Integration can’t: Rewrite your code to make it better. Fix broken things. Fix technical debt. Fix broken architecture. You mean it can’t do everything? What can’t Continuous Integration do for me?
  • 8. Goals: Automatically run all unit tests on push. Pre-commit hooks to format and lint code. Partially automated code reviews for Static Code Analysis. We’ll use: Circle CI Husky, Prettier, and Prettier-Apex Codacy.com Our solution. OK, I’m in. How do I do this?
  • 10. This way to the code In case Kevin forgets, this is where we (finally) get away from the slides and to the coding bits.
  • 11. Today we Used different automation tools to automate different aspects of our code lifecycle. CircleCI to automatically run unit tests in a new scratch org Husky, along with Prettier and various Linters to consistently format and lint our code. Codacy.com to automatically ‘review’ code with static analysis tools like Apex-PMD Proved we can type… sometimes.
  • 12. Key Takeaways CI can automate parts of your development that you’d otherwise not dedicate time to. Like: Running the full suite of unit tests Formatting and linting code Static code analysis It can’t, however, fix the issues it brings to the surface. It’s only as good as the unit tests and developers you have. Remember this!
  • 13. Complete the CI Trailmix: http://bit.ly/LiveCodingCI trailhead.salesforce.com