These are the slides from a presentation given to the San Diego Salesforce Developer Group on September 16, 2014.
The presentation highlights why coding standards and design patterns are important parts of creating a scalable, maintainable Salesforce Enterprise Org. A series of specific implementation and architecture recommendations are outlined. Finally, models for process and governance are provided to help the viewer take steps to bring about change in their Org.
How to Use Salesforce Platform Events to Help With Salesforce LimitsRoy Gilad
Presented at Israel User Group December 2019: Mixed DMLS Operations, Too Many SOQL Queries, Too Many DML Statements, CPU Timeout: Salesforce's Governor limits are there for a reason but even when you employ best practices you may still exceed them. A good developer will look at all tools available on the platform and find the best approach to solving the problem they are facing. Join us to add the newest tool to your developer toolbelt. Use Platform Events to change the rules of the game, process more, and faster within governor limits.
Link to GitHub repository:
https://github.com/RoyGilad/Dreamforce-2019-Do-more-within-Salesforce-Governor-Limits-using-Platform-Events
The Salesforce platform offers system as well as application level security capabilities for building robust and secure applications. Join us as we introduce the system-level security features of Salesforce, like authentication and authorization mechanisms that include various Single Sign-On and OAuth flows. We'll also cover declarative application-level security features, like user profiles, roles and permissions, and how an Organization Wide Security and record-sharing model enforces a finer level of access control over the data.
While there are many ways to build integrations with salesforce, one of the fastest growing ways is through the Salesforce REST API. Join us as we explore the current REST-ful mechanisms available to the AppCloud, and see what the next year has to offer. In this session we will discuss the Salesforce REST API structure, Authenticating to the REST API, sObject Manipulation, and Composition through the REST API.
Any structure expected to stand the test of time and change needs a strong foundation! Software is no exception. Engineering your code to grow in a stable and effective way is critical to your ability to rapidly meet the growing demands of users, new features, technologies, and platform capabilities. Join us to obtain architect-level design patterns for use in your Apex code to keep it well factored, easy to maintain, and in line with platform best practices. You'll follow a Force.com interpretation of Martin Fowler's Enterprise Architecture Application patterns, and the practice of Separation of Concerns.
"We'll need an Apex trigger to do that." Sound familiar? Take your advanced Admin skills to the next level by developing Apex triggers to solve complex business requirements that can't be implemented using just the configuration-driven features of Force.com. Join us to learn when and how to write your first Apex trigger, and some best practices for making them effective.
How to Use Salesforce Platform Events to Help With Salesforce LimitsRoy Gilad
Presented at Israel User Group December 2019: Mixed DMLS Operations, Too Many SOQL Queries, Too Many DML Statements, CPU Timeout: Salesforce's Governor limits are there for a reason but even when you employ best practices you may still exceed them. A good developer will look at all tools available on the platform and find the best approach to solving the problem they are facing. Join us to add the newest tool to your developer toolbelt. Use Platform Events to change the rules of the game, process more, and faster within governor limits.
Link to GitHub repository:
https://github.com/RoyGilad/Dreamforce-2019-Do-more-within-Salesforce-Governor-Limits-using-Platform-Events
The Salesforce platform offers system as well as application level security capabilities for building robust and secure applications. Join us as we introduce the system-level security features of Salesforce, like authentication and authorization mechanisms that include various Single Sign-On and OAuth flows. We'll also cover declarative application-level security features, like user profiles, roles and permissions, and how an Organization Wide Security and record-sharing model enforces a finer level of access control over the data.
While there are many ways to build integrations with salesforce, one of the fastest growing ways is through the Salesforce REST API. Join us as we explore the current REST-ful mechanisms available to the AppCloud, and see what the next year has to offer. In this session we will discuss the Salesforce REST API structure, Authenticating to the REST API, sObject Manipulation, and Composition through the REST API.
Any structure expected to stand the test of time and change needs a strong foundation! Software is no exception. Engineering your code to grow in a stable and effective way is critical to your ability to rapidly meet the growing demands of users, new features, technologies, and platform capabilities. Join us to obtain architect-level design patterns for use in your Apex code to keep it well factored, easy to maintain, and in line with platform best practices. You'll follow a Force.com interpretation of Martin Fowler's Enterprise Architecture Application patterns, and the practice of Separation of Concerns.
"We'll need an Apex trigger to do that." Sound familiar? Take your advanced Admin skills to the next level by developing Apex triggers to solve complex business requirements that can't be implemented using just the configuration-driven features of Force.com. Join us to learn when and how to write your first Apex trigger, and some best practices for making them effective.
LWC Episode 3- Component Communication and Aura InteroperabilitySalesforce Developers
Lightning Web Components gives JavaScript developers a web standards-based path to building apps on the Salesforce Lightning Platform.
In the third episode of our five part series on Lightning Web Components, we cover design considerations and compositions of Lightning Web Components.
When you need to deliver fast, shortcuts will be taken. This is a fact when it comes to software development, and Salesforce is no different.
This is how technical debt is created. It’s a costly side effect of growth, and it cannot be ignored! Just like financial debt, if you don’t address it in time, it will accumulate and over time your teams will find themselves addressing issues with the platform instead of supporting customers and developing revenue opportunities – and this will have a direct impact on your ROI.
Testing Apex
What is Test class in salesforce?
What Components needs to be tested?
Syntax of basic test class and test method Test class best practices
Why is Org Strategy important, what are the possible org patterns and what are some of the benefits and challenges to consider? This 12-page long white paper describes different org existence models, trade-offs, design best practices, and assessment approach. Please leave your comments.
Did you inherit a cluttered org with no documentation? Are you trying to figure out why you have 500 fields on an object? Join this session and collaboratively learn from other customers about the most common traits of a messy implementation, and how you can untangle yours.
This presentation is based on the Data model of Salesforce platform. I prepared this presentation for the DEV 401 certification discussion at Sabre Technologies.
Salesforce Sales Cloud: Best Practices to Win More DealsCloud Analogy
Salesforce Sales Cloud includes a variety of services and products that help salespeople close more deals and develop stronger customer connections. Check out this presentation for more details on Sales Cloud.
Introduction to Salesforce | Salesforce Tutorial for Beginners | Salesforce T...Edureka!
( Salesforce Training: https://www.edureka.co/salesforce-administrator-and-developer-training)
This tutorial will give you an introduction to the Salesforce CRM and talk tell you how & why Salesforce has emerged as one of the leading cloud computing companies today.
This video covers the following topics:
1. Salesforce:- Need & Rise
2. Features Of Salesforce
3. Demo: Salesforce In Action
Salesforce Application Lifecycle Management presented to EA Forum by Sam Garf...Sam Garforth
Sam Garforth presented this at the Salesforce Enterprise Architect Forum on January 12th 2017. It covers governance and best practices for developing, deploying and supporting applications running on the Salesforce platform, whether these be apps or configurations of Sales or Service Cloud or Communities.
Salesforce integration best practices columbus meetupMuleSoft Meetup
onnectivity Overview
Connectivity to Salesforce Clouds
Connectors and Salesforce APIs
Connector interacting with Salesforce core
Composite Connector
Triggers
Establishing a connected app for MuleSoft Connectors
Salesforce Integration Best Practices
When to move data into SFDC
Appropriate use of APEX
Salesforce integration technologies and considerations
Data Virtualization/Live Read
Data Manipulation and Migration
Real-time changes, events and Streaming
Resources
Salesforce Accelerators for Service Cloud and Commerce Cloud
Discover salesforce, dev ops and Copado CI/CD automationsJackGuo20
Successfully adopting DevOps can deliver real business results through faster development cycles and higher quality releases. Learn how to use Continuous Integration/Continuous Delivery (CI/CD) across your Salesforce team to measure and optimize the performance of your implementation.
Copado works with Salesforce to get you onto the path of DevOps success. Copado runs natively on the Salesforce Platform and provides you with the ability to have more frequent deployments, faster lead times, lower failure rates, and quicker incident recovery times. Join this webinar with experts from both Salesforce and Copado to learn how to supercharge your Salesforce orgs by integrating robust CI/CD processes designed specifically for the Salesforce Platform.
Platform Events enables a new event-driven architecture for Salesforce focused on events and record changes, rather than full record processing. Join us to learn about Platform Events and what this will mean to the future of integration with Salesforce.
In this exclusive webinar, you'll learn about
- How Platform Events enable real-time integration
- Defining, publishing and subscribing to Platform Events in Salesforce
- How Platform Events work through live demonstrations
When building an enterprise solution or creating an app, data often comes from multiple systems, and business processes frequently cross application boundaries.
Salesforce offers a rich library of programmatic and point-and-click integration tools to customize business processes that span multiple application systems. In this webinar, we will survey the many integration options and technologies available in Salesforce, including newer API and integration features.
This webinar is the first in a series that will explore several ways to integrate systems and services with Salesforce.
The new queueable Apex feature is not only a great way to make asynchronous calls, it also enables new design patterns that let you dramatically increase the reliability of those calls. In addition, you can detect and recover from a wide variety of errors and exceptions with clarity. Join us to learn how to use queueable Apex to build robust asynchronous code.
The Ideal Salesforce Development LifecycleJoshua Hoskins
It's common for organizations of all sizes to stumble a bit before adopting an effective Release Management strategy. Whether you are small or large, join us as we cover important best practices, like: How many Sandboxes and what kind do I need? How can Developers and Admins best compliment each other's efforts? What is the best way to promote changes from one environment to another? Why can't I do my development in Prod? Get actionable recommendations for making your Salesforce development team more customer-focused by making your release cycle cleaner and more efficient.
Audio: https://www.youtube.com/watch?v=SGiBNMahr6g
LWC Episode 3- Component Communication and Aura InteroperabilitySalesforce Developers
Lightning Web Components gives JavaScript developers a web standards-based path to building apps on the Salesforce Lightning Platform.
In the third episode of our five part series on Lightning Web Components, we cover design considerations and compositions of Lightning Web Components.
When you need to deliver fast, shortcuts will be taken. This is a fact when it comes to software development, and Salesforce is no different.
This is how technical debt is created. It’s a costly side effect of growth, and it cannot be ignored! Just like financial debt, if you don’t address it in time, it will accumulate and over time your teams will find themselves addressing issues with the platform instead of supporting customers and developing revenue opportunities – and this will have a direct impact on your ROI.
Testing Apex
What is Test class in salesforce?
What Components needs to be tested?
Syntax of basic test class and test method Test class best practices
Why is Org Strategy important, what are the possible org patterns and what are some of the benefits and challenges to consider? This 12-page long white paper describes different org existence models, trade-offs, design best practices, and assessment approach. Please leave your comments.
Did you inherit a cluttered org with no documentation? Are you trying to figure out why you have 500 fields on an object? Join this session and collaboratively learn from other customers about the most common traits of a messy implementation, and how you can untangle yours.
This presentation is based on the Data model of Salesforce platform. I prepared this presentation for the DEV 401 certification discussion at Sabre Technologies.
Salesforce Sales Cloud: Best Practices to Win More DealsCloud Analogy
Salesforce Sales Cloud includes a variety of services and products that help salespeople close more deals and develop stronger customer connections. Check out this presentation for more details on Sales Cloud.
Introduction to Salesforce | Salesforce Tutorial for Beginners | Salesforce T...Edureka!
( Salesforce Training: https://www.edureka.co/salesforce-administrator-and-developer-training)
This tutorial will give you an introduction to the Salesforce CRM and talk tell you how & why Salesforce has emerged as one of the leading cloud computing companies today.
This video covers the following topics:
1. Salesforce:- Need & Rise
2. Features Of Salesforce
3. Demo: Salesforce In Action
Salesforce Application Lifecycle Management presented to EA Forum by Sam Garf...Sam Garforth
Sam Garforth presented this at the Salesforce Enterprise Architect Forum on January 12th 2017. It covers governance and best practices for developing, deploying and supporting applications running on the Salesforce platform, whether these be apps or configurations of Sales or Service Cloud or Communities.
Salesforce integration best practices columbus meetupMuleSoft Meetup
onnectivity Overview
Connectivity to Salesforce Clouds
Connectors and Salesforce APIs
Connector interacting with Salesforce core
Composite Connector
Triggers
Establishing a connected app for MuleSoft Connectors
Salesforce Integration Best Practices
When to move data into SFDC
Appropriate use of APEX
Salesforce integration technologies and considerations
Data Virtualization/Live Read
Data Manipulation and Migration
Real-time changes, events and Streaming
Resources
Salesforce Accelerators for Service Cloud and Commerce Cloud
Discover salesforce, dev ops and Copado CI/CD automationsJackGuo20
Successfully adopting DevOps can deliver real business results through faster development cycles and higher quality releases. Learn how to use Continuous Integration/Continuous Delivery (CI/CD) across your Salesforce team to measure and optimize the performance of your implementation.
Copado works with Salesforce to get you onto the path of DevOps success. Copado runs natively on the Salesforce Platform and provides you with the ability to have more frequent deployments, faster lead times, lower failure rates, and quicker incident recovery times. Join this webinar with experts from both Salesforce and Copado to learn how to supercharge your Salesforce orgs by integrating robust CI/CD processes designed specifically for the Salesforce Platform.
Platform Events enables a new event-driven architecture for Salesforce focused on events and record changes, rather than full record processing. Join us to learn about Platform Events and what this will mean to the future of integration with Salesforce.
In this exclusive webinar, you'll learn about
- How Platform Events enable real-time integration
- Defining, publishing and subscribing to Platform Events in Salesforce
- How Platform Events work through live demonstrations
When building an enterprise solution or creating an app, data often comes from multiple systems, and business processes frequently cross application boundaries.
Salesforce offers a rich library of programmatic and point-and-click integration tools to customize business processes that span multiple application systems. In this webinar, we will survey the many integration options and technologies available in Salesforce, including newer API and integration features.
This webinar is the first in a series that will explore several ways to integrate systems and services with Salesforce.
The new queueable Apex feature is not only a great way to make asynchronous calls, it also enables new design patterns that let you dramatically increase the reliability of those calls. In addition, you can detect and recover from a wide variety of errors and exceptions with clarity. Join us to learn how to use queueable Apex to build robust asynchronous code.
The Ideal Salesforce Development LifecycleJoshua Hoskins
It's common for organizations of all sizes to stumble a bit before adopting an effective Release Management strategy. Whether you are small or large, join us as we cover important best practices, like: How many Sandboxes and what kind do I need? How can Developers and Admins best compliment each other's efforts? What is the best way to promote changes from one environment to another? Why can't I do my development in Prod? Get actionable recommendations for making your Salesforce development team more customer-focused by making your release cycle cleaner and more efficient.
Audio: https://www.youtube.com/watch?v=SGiBNMahr6g
Salesforce Release Management - Best Practices and Tools for DeploymentSalesforce Developers
Join us to learn how EMC?s Isilon Storage Division has adopted salesforce.com best practices to better manage deployments on the Force.com platform. We'll also introduce the ?SfOpticon? tool, a custom-built, open-source solution which uses the Force.com Metadata API and Github to monitor, track, branch, package and deploy changes to our salesforce.com environments.
Implementing a Salesforce CRM will help you in integrating all the business related aspects on one platform. It will also help you in deriving business intelligence with ease. Salesforce implementation is not an ad-hoc activity. It requires careful planning and detailed execution.
Release & Change Management in Salesforce. Best Practice in implementing Salesforce project or setting up your salesforce org. and manage release and changes
From Sandbox To Production: An Introduction to Salesforce Release ManagementSalesforce Developers
Wondering how to manage multiple Salesforce environments for managing your release? Join us as our Architects show how large enterprises manage Sandbox environments. Learn some of the key considerations in picking sandbox types and migration tools to lay out a process to manage an effective Release Management.
This is a pack that I have created recently to help a team gather initial information and requirements to support a CRM requirements gathering exercise.
Manage Development in Your Org with Salesforce Governance FrameworkSalesforce Developers
As your team creates more apps in your Salesforce Org, you're faced with a new set of challenges: managing a well-designed org. Join us to learn about using the practices defined in the Salesforce Governance framework, and the set of tools available for managing issues such as security, coding standards, decisions over declarative verses Apex apps, design standards, overall Org strategy, and change control. By applying these best practices, your team can continue to grow your apps to meet the continuing challenges of your company.
Are your business partners asking to be able to create their own applications? Are you asked to share development environments with other teams? Join us to learn considerations and best practices for making shared development in a single org a success. We'll cover process management, development methodology, release processes, and apps life cycle maintenance.
Salesforce Coding techniques that keep your admins happy (DF13)Roy Gilad
Do you want to spend more time developing new and exciting features, and less time maintaining existing code when a field is added or an error message needs to change? Then keep yourself and your Administrator happy by coding to anticipate these changes using Custom Settings, Field Sets, and Labels.
Source code is available at:
https://gist.github.com/RoyGilad
This presentation was presented by Roy Gilad at Dreamforce 2013
Getting started with salesforce- deploy and empower your usersHarleen Mann ?
Deploy and empower your end users
Engage with your users and take action to
achieve your goals
BY "Your Getting Started with Salesforce Community Team"
Who is to blame? SharePoint? SQL? For many admins, SharePoint is the biggest and most important SQL Server application they manage. But how? In this session, we give an overview on planning, installation and management of SQL Server for SharePoint. We also explain how SharePoint uses SQL and cover best practices from the SharePoint and SQL CAT teams.
Ten query tuning techniques every SQL Server programmer should knowKevin Kline
From the noted database expert and author of 'SQL in a Nutshell' - SELECT statements have a reputation for being very easy to write, but hard to write very well. This session will take you through ten of the most problematic patterns and anti-patterns when writing queries and how to deal with them all. Loaded with live demonstrations and useful techniques, this session will teach you how to take your SQL Server queries mundane to masterful.
Add-On Development: EE Expects that Every Developer will do his Dutyreedmaniac
Add-Ons are what make ExpressionEngine the flexible powerhouse that it is today. Being able to write your own simple plugins or incredibly expansive modules allows you to mold ExpressionEngine to nearly any task that your website might require. However, with that power comes a great responsibility to insure that your code is not slowing down the entire site or unduly stressing the server through bad code architecture.
There are simple tools already built into ExpressionEngine and PHP that you can use to see precisely what your Add-On is doing during page processing and where it might be doing more work than is absolutely necessary. Every developer should use these to optimize their work from the very beginning of development, prior to release. This workshop will explain these tools and how you can use them effectively. It will also delve deeper into optimization techniques and tricks that will keep your code light and clean, while finding a balance between functionality and performance.
(ATS6-PLAT02) Accelrys Catalog and Protocol ValidationBIOVIA
Accelrys Catalog is a powerful new technology for creating an index of the protocols and components within your organization. You will learn about strategies for indexing and how search capabilities can be deployed to professional client and Web Port end users. You will also learn how to use this technology to find out about system usage to aid with system upgrades, server consolidations, and general system maintenance. The protocol validation capability in the admin portal allows administrators to created standard reports on server usage characteristics. You will learn how to report on violations of IT policies (e.g. around security), bad protocol authoring practices, or missing or incomplete protocol documentation. Developers will also learn how to extend and customize the rules used to create these reports.
Add-On Development: EE Expects that Every Developer will do his DutyLeslie Doherty
A presentation on Add-On Development: EE Expects that Every Developer will do his Duty as given at the EECI2009 conference in Leiden by Paul Burdick, lead developer at Solspace.
How Skroutz S.A. utilizes Deep Learning and Machine Learning techniques to efficiently serve product categorization! Based on my talk at Athens PyData meetup!
The global PyData network promotes discussion of best practices, new approaches, and emerging technologies for data management, processing, analytics, and visualization
CoFX is the framework behind time cockpit (http://www.timecockpit.com). Learn about the data model of CoFX and see how to use it to extend time cockpit.
25 Real Life Tips In Ruby on Rails DevelopmentBelighted
This is a collection of small tips and tricks related to developing web applications using the Ruby on Rails framework.
These tips are gathered from my personal experience of 4 years working with the framework, including more than 2 years of professional work at Belighted.
The talk was given in the Ruby on Rails Developer Room at Fosdem 2010 (www.fosdem.org).
Designing, Building, and Maintaining Large Cubes using Lessons LearnedDenny Lee
This is Nicholas Dritsas, Eric Jacobsen, and my 2007 SQL PASS Summit presentation on designing, building, and maintaining large Analysis Services cubes
AngularJS 1.x - your first application (problems and solutions)Igor Talevski
We will talk about all aspects of building a single page application with AngularJS, and we will discuss real examples from day-to-day work. We will also cover a large amount of theory about general web development, best practices, and today's client demands. We will focus on three (3) main points: architecture, security, and real time notification.
Similar to Salesforce Development Best Practices (20)
Dreamforce 2019 Five Reasons Why CLI Plugins are a Salesforce Partners Secret...Vivek Chawla
Automation through tooling is a key part of growing a successful Salesforce consulting or development shop. Good tooling makes your team more productive and creates new opportunities for self-service, improving customer satisfaction and your bottom line.
Enter the Salesforce CLI. It has an extensible, plugin-based design that makes it easy to build powerful tools using JavaScript, the most commonly used programming language on earth.
In this presentation, Vivek M. Chawla, Principal ISV Technical Evangelist, shares five reasons why building a CLI plugin can be a Salesforce Partner's secret weapon. Readers will learn why having a custom tooling strategy is important, how the Salesforce CLI fits in, and get a roadmap for getting started.
Salesforce DX 201 - Advanced Implementation for ISVsVivek Chawla
First presented on January 18, 2018 as part of the monthly AppExchange Technical Enablement webinar series. This deck introduces the SFDX-Falcon template, a specialized Salesforce DX project structure for ISVs. It also provides guidance on how to prepare for second-generation packaging, how to automate complex SFDX tasks with shell scripts, and how Continuous Integration can be used with Managed Packages.
Salesforce DX Update for ISVs (October 2017)Vivek Chawla
Salesforce DX Update for ISVs - What ISV Partners should know about Salesforce DX right now.
Vivek M. Chawla, Senior ISV Technical Evangelist at Salesforce, answers the most common questions from ISV Partners about Salesforce DX, including...
- What is going GA / BETA / PILOT in Winter ‘18
- What ISVs should know about Salesforce DX
- What ISVs can do to learn more about Salesforce DX
For more information about Salesforce DX, check out the following Chatter groups in the Salesforce Success Community.
Salesforce DX - http://bit.ly/sfdx-group
Packaging 2 Beta - http://bit.ly/pkg2-beta-group
Start a Developer Group and take TrailheaDX Home With You! (TDX'17)Vivek Chawla
Do you love the passion and energy of the Salesforce Developer community, but wish you could experience it more often than twice a year? A Salesforce Developer Group (DG) is just what the doctor ordered! Join Vivek M. Chawla, (founder of the San Diego Salesforce DG, 2015 Salesforce MVP, and current Salesforce ISV Technical Evangelist) to hear first-hand how to start, manage, and grow a Salesforce Developer Group in your neck of the woods!
Squash Bugs with the Apex Debugger (TDX'17)Vivek Chawla
The Apex Debugger is a powerful tool that has helped reduce the pain of debugging your Apex code. This session takes you on a deep-dive tour of the Debugger. We'll walk through a live demo showing you how to setup the debugger and highlight the key features of the Apex Debugger plug-in for Eclipse. We'll even walk through a simple debugging puzzle, demonstrating how you might use the debugger for your own projects. This session is for intermediate to experienced Apex Developers.
Advanced Flow Concepts Every Developer Should KnowPeter Caitens
Tim Combridge from Sensible Giraffe and Salesforce Ben presents some important tips that all developers should know when dealing with Flows in Salesforce.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
Why React Native as a Strategic Advantage for Startup Innovation.pdfayushiqss
Do you know that React Native is being increasingly adopted by startups as well as big companies in the mobile app development industry? Big names like Facebook, Instagram, and Pinterest have already integrated this robust open-source framework.
In fact, according to a report by Statista, the number of React Native developers has been steadily increasing over the years, reaching an estimated 1.9 million by the end of 2024. This means that the demand for this framework in the job market has been growing making it a valuable skill.
But what makes React Native so popular for mobile application development? It offers excellent cross-platform capabilities among other benefits. This way, with React Native, developers can write code once and run it on both iOS and Android devices thus saving time and resources leading to shorter development cycles hence faster time-to-market for your app.
Let’s take the example of a startup, which wanted to release their app on both iOS and Android at once. Through the use of React Native they managed to create an app and bring it into the market within a very short period. This helped them gain an advantage over their competitors because they had access to a large user base who were able to generate revenue quickly for them.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
Modern design is crucial in today's digital environment, and this is especially true for SharePoint intranets. The design of these digital hubs is critical to user engagement and productivity enhancement. They are the cornerstone of internal collaboration and interaction within enterprises.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
3. Overview
• Why standards, design patterns, and best practices matter
• Implementation and Architecture
• Process and Governance
• Three things you can do TODAY
3
4. Why Patterns and Best Practices Matter
• Efficiency
• Security
• Quality
• Minimize Technical Debt
4
5. What is “Technical Debt”?
“Work that needs to be done before a particular job can be
considered complete or proper. If the debt is not repaid, then it
will keep on accumulating interest, making it hard to implement
changes later on”.
In other words…
“All the things, big and small, that left undone will eventually
come around to bite you in the ass”.
5
6. Salesforce Technical Debt Accrues FAST
• Too many “System Administrators”.
• Changing the data model and adding business logic is EASY.
• Less institutional knowledge of Salesforce (typically)
6
7. Salesforce “Gotchas” are Painful
Salesforce development takes a lot of effort to do right.
• Governor limits can cause pain unexpectedly if not considered
early on in the design process.
• Deployment is tricky business
• Team development is either the Wild West…or Soviet Russia.
7
10. Coding Style
Apex code should follow a consistent coding style for the
following areas.
• Whitespace
– Always use spaces for indentation. Do not use tabs.
• Block Indentation / Column Limit
– Indent new blocks with two spaces.
– Code within a 100 character column limit.
• SOQL Queries
– Break SOQL Queries across multiple lines.
• Fields named in the SELECT clause appear alone, one per line.
- List fields in ascending alphabetical order.
• WHERE predicates appear alone, one per line.
*See the Google Java Style guide for additional guidance
10
12. Apex File Headers
• File headers should include…
– Description of purpose.
– Names / emails of the author, and subsequent editors.
– Date of creation, and last modification.
– Related metadata (eg. classes, triggers, objects, VF pages).
• Apex REST classes should…
– Note the HTTP methods they serve.
– Note endpoints when using multiple base URIs per method.
• Triggers and Trigger Handler classes should…
– Note the Actions being caught and processed.
• Use @deprecated when a class is no longer in use.
12
13. Apex Method Headers
• Standard (non-test) method headers should include…
– One or two sentence description of purpose.
– @param description of each parameter
– @return description of the return type, noting likely returned
values / outcomes.
• Test method headers require only…
– Description of the test’s functional logic.
13
14. Visualforce Documentation
Visualforce Pages and Components should be simultaneously
documented in two places.
• File Headers
• Metadata “Description” Fields
14
15. Visualforce File Headers
• Use HTML (<!-- -->) comment blocks.
• File headers should include…
– Description of purpose.
– Names / emails of the author, and subsequent editors.
– Date of creation, and last modification.
– Related metadata (eg. classes, objects, pages, components).
• File headers should respect a 100 column width limit.
15
16. Visualforce Metadata Descriptions
• Edit via Setup or -meta.xml
• Write for a non-technical audience
• Summarize File Header documentation, including…
– Short description of purpose.
– Date of creation
– Full name of original author.
– Administrative notes (if known).
• Update only if core functionality changes
16
17. Non-Code Metadata Documentation
Add descriptions for ALL non-code metadata!
• Description fields typically hold 255 characters
– 1000 for Custom Objects and Fields
• Descriptions should include…
– Short description of purpose
– Date of creation
– Full name of creator
– Administrative references
17
20. Triggers
• One trigger per Object
– Guaranteed order of execution (at least for your code!)
• Implement logic in a separate “trigger handler” class.
• Use static variables to prevent trigger recursion
• All logic MUST be “bulkified”.
20
21. What is “Bulkified” Code?
• Acts on collections, rather than single objects.
• Designed with governor limits in mind
– SOQL Queries
• NEVER perform queries inside of loops!
• Query using sets, rather than single-value predicates
• Use SOQL For loops when expecting more than 300 records.
- Use selective queries!
– DML Operations
- Always perform DML on collections of SObjects.
- Be aware of “hidden” DML, eg. Database.ConvertLead().
- NEVER perform DML inside of loops!
– Future Calls
- Max of 10 @future calls per execution context.
- No callouts from triggers! Business logic often requires use of @future methods.
- @future methods called from Triggers MUST be designed for bulk!
21
22. “Bulk” Design Patterns
• All code should be “bulk” code!
• Public static methods should always be “bulkified”
• Public instance methods can sometimes be “non-bulkified”.
– But they should have a really good reason!
Commit to “bulk-first” design, and it will eventually
become second nature.
22
23. Separation of Concerns
• What is SOC?
– Class architecture?
– Naming conventions?
– Mumbo Jumbo?
23
24. Separation of Concerns (High Level)
Entrypoint Layer
Invocation Layer
Service Layer
Utility Layer
Activities that invoke Apex
– API / UI Based Create/Update/Delete
– Visualforce Page / Component Load
– SFDC Asynchronous Queue, Apex Scheduler
“First Line” of Apex Code
– Visualforce Controllers and Extensions
– Triggers and Trigger Handlers
– Web and Email Services
– Asynchronous and Scheduled Apex
Domain and Function-specific
Business Logic
– LeadServices.cls, AccountServices.cls, etc.
– RegistrationServices.cls, CpqServices.cls, etc.
Supports the Service Layer
– Utility Classes
– Model / Wrapper Classes*
– Selector Classes
24
25. Separation of Concerns (Low Level)
LeadConvController.cls
25
SFDC
API Based
Create/Edit/Delete
UI Based
Create/Edit/Delete
LeadConv.page Asynchronous
Apex Scheduler
Queue
Operation
Operation
LeadTrigger.trigger
LeadTriggerHandler.cls
LeadIntAsync.cl
s
LeadIntBatch.cls LeadCleanJob.cls
ContactServices.cls LeadServices.cls AccountServices.cls
ContactSelector.cls LeadConversionUtil.cls ConvertedLead.cls AccountSelector.cls
26. Naming Conventions
• Apex and Visualforce Names
• Apex and Visualforce Identifiers
• Objects, Fields, and other Metadata
26
27. Apex and Visualforce Names
• Use UpperCamelCase
• Avoid using underscores
• Use full names, rather than abbreviations (in most cases)
– If using abbreviations, be consistent!
• Test classes append “Test” to the name of the covered class
27
28. Choosing a Name
Apex
• First word(s) should be the API name of the related
component.
– If too long, use a consistent best-approximation
– Ignore underscores
• Middle word(s) can provide context (optional)
• Last word(s) should indicate “functional type” of the class
– Reconsider design of classes that don’t fit one functional type
Visualforce
• For Visualforce names, be descriptive but brief
– Controller classes incorporate the Page / Component name
28
29. Apex Class and Trigger Name Suffixes
Functional Type Name Suffix Examples
Trigger Trigger AccountTrigger
Trigger Handler TriggerHandler AccountTriggerHandler
VF Controller Controller NewAccountController
VF Controller Extension ControllerExt AccountControllerExt
Service Class Services AccountServices
Utility Class Util AccountDupeCatcherUtil
Selector Class Selector AccountSelector
Model / Wrapper Class Varies… Accounts / AccountWrapper
Web Service (SOAP) Ws AccountToolsWs
Web Service (REST) Rest AccountToolsRest
Email Service EmlSvc AccountCreateEmlSvc
Asynchronous (Future) Async AccountIntegrationsAsync
Asynchronous (Batch) Batch AccountMigrationBatch
Scheduled Apex Job AccountCleanupJob
29
30. Apex and Visualforce Identifiers
• Variable Names
– SObjects
• Type of SObject should be clear by looking at name
– Collections
• Should always be plural!
• Method Names
– UseCamelCase…but the first character is always lowercase.
• useCamelCase()
All should…
• Use descriptive words.
– Rapid clarity to others is important!
• NEVER use single-character variables.
30
31. Objects, Fields, and Other Metadata
Create and follow common rules for…
• Use of underscores to separate words in API names.
• Capitalization of words in API names
• Must API names and labels match?
31
33. Recommendations
• Agree on specific org-wide standards, patterns, and practices.
• Refactor code and data model
• Define a regular Quality Control Cycle.
33
34. Agree on Standards
• Figure out what they are
• Socialize with your team
• Seek support from management
34
37. Three Things You Can Do TODAY
• Create a one-page Standards Document
• Make sure you’re using one trigger per object
• Commit to two code reviews
37
40. Appendix
• Google’s Java Style Guide
– http://bit.ly/GoogleJavaStyle
• Separation of Concerns
– Dreamforce Presentation (Video) – “Apex Enterprise Patterns”
• http://bit.ly/DF2013SOC
– Andrew Fawcett’s Blog – “Apex Enterprise Patterns – Separation of
Concerns”
• http://bit.ly/FawcettBlogSOC
– DeveloperForce Technical Library – “Separation of Concerns”
• http://bit.ly/DevForceSOC
40
Editor's Notes
The multi-tenant architecture of Salesforce, and the Platform and Governor Limits that go with it, mean that the use of certain best practices and design patterns are not matters of preference, but of requirement.
In any environment, non-existent or ad-hoc standards greatly contribute to technical debt. However, the unique nature of technical debt on Salesforce makes defining and adhering to standards critical to the long-term health of an Enterprise Org.
This presentation is intended to increase our team’s knowledge of Salesforce development best practices, and highlight steps that we can take to bring the B2B Org into compliance with them.
Too many “System Administrators”.
Revolution is easy. Governing is hard.
With great power comes great responsibility.
Changing the data model and adding business logic is EASY.
Just because you can point-and-click something into existence doesn’t mean you should.
Compare to the “old days” when DBAs owned the data model, and only developers could effect how an application behaved.
Beware the Ninja Admin!
Less institutional knowledge of Salesforce (typically)
Knowledge of Salesforce-specific design patterns is critical.
Use of multiple contractors can result in an uneven patchwork of design choices and coding standards.
The story of the Opportunity.Contact__c field is a good example of a Ninja Admin point-and-clicking something into existence when he should not have.
Specific problems with Unit Tests include the use of the “SeeAllData=TRUE” annotation. Creating high quality, flexible “Test Data Utility” classes can help.
Salesforce development takes a lot of effort to do right.
Governor limits can cause pain unexpectedly if not considered early on in the design process. Common pitfalls include…
Number of SOQL Queries
Number of @Future calls
Number of records retrieved.
Deployment is tricky business
Metadata dependencies can be a nightmare to debug.
“Destructive” changes are especially painful!
Writing “instance agnostic” Unit Tests takes extra time and effort.
Team development is either the Wild West…or Soviet Russia.
Lack of Salesforce-specific tools and best practices means most Enterprises fend for themselves (with varying degrees of success).
Beware the Ninja Developer!
Coding Style
Documentation
Apex Classes and Triggers
Visualforce Pages and Components
Non-Code Metadata
Design Patterns
Trigger Design Patterns
“Bulk” Design Patterns
Separation of Concerns
Naming Conventions
Apex Class and Trigger Names
Visualforce Page and Component Names
Apex and Visualforce Identifiers
Objects, Fields, and other Metadata
Various browser based editors may convert TABS to SPACES, rending the use of TABS for indenting an inconsistent experience. For this reason, it is best to standardize on indenting with spaces only.
Whitespace
Always use spaces for indentation. Do not use tabs.
Use a single space to…
Separate reserved words, like if, for, catch, from an open parenthesis or open brace.
Separate closing parenthesis and opening braces.
Add space to both sides of any binary or ternary operator.
Horizontal alignment is allowed, but not required.
Block Indentation / Column Limit
Indent new block or block-like constructs with two spaces.
Code within a 100 character column limit.
Longer statements must be line-wrapped.
Indent continuation with at least +4 spaces.
SOQL Queries
SOQL keywords (eg. SELECT, FROM, WHERE) use ALL CAPS.
SOQL Queries (both inline and constructed strings) break across multiple lines.
The SELECT, FROM, WHERE, and ORDER BY clauses each appear alone, on a single line.
SOQL code between the four “top-level” clauses is indented by at least +2 spaces.
Fields named in the SELECT clause appear alone, one per line.
Fields should be listed in ascending alphabetical order.
Fields added later should respect this ordering.
WHERE predicates appear alone, one per line.
Logical operators (AND / OR) between predicates appear alone, one per line, and are indented by at least +2 spaces.
Child relationship queries follow the same rules.
Apex code files implement a variety of documentation headers using block-formatted (/* */) comments. These include:
File Headers
Method Headers
Other Headers
All headers must respect the 100 column width limit. The use of repeated, contiguous characters (eg. *********) to mark the vertical boundaries of each header is encouraged.
File headers should include:
Description of purpose.
Names / emails of the author, and subsequent editors.
Date of creation, and last modification.
Related metadata (eg. classes, triggers, objects, VF pages).
Apex REST classes should…
Note the HTTP methods they serve.
Note endpoints when using multiple base URIs per method.
Triggers and Trigger Handler classes should
Note the Actions (eg. BEFORE UPDATE, AFTER INSERT) being caught and processed.
Use @deprecated when a class is no longer in use.
Apex Method Headers
All standard (non-test) method headers should include:
One or two sentence description of purpose.
@param description of each parameter, one per line, noting the parameter name, type, and purpose.
@return description of the return type, noting likely returned values / outcomes.
Test method headers require only a description of the test’s functional logic.
Use HTML (<!-- -->) comment blocks to create Visualforce Page / Component documentation headers.
File headers are typically viewed by Developers, and may be updated many times over the life of the file.
File headers should include:
One or two sentence description of purpose.
Names and email addresses of the original author, and anyone making significant modifications.
Date of creation, and date of last modification.
Related metadata (eg. classes, objects, components).
File headers respect a 100 column width limit, and are vertically bound (top and bottom) by single lines of repeated, contiguous characters (eg. *********).
Metadata “Description” Fields
Metadata Descriptions can be edited via the Setup UI, or the -meta.xml file associated with the VF Page or Component.
Metadata Descriptions are typically viewed by non-Developer Admins, and are only updated if the core functionality of the Page or Component changes.
Descriptions are written for a non-technical audience, and summarize the File Header documentation at the time the file was created.
Summaries should include:
One or two sentence description of purpose.
Date of creation, and the full name of the original author.
Administrative notes, eg. “Requested / Approved By”, “User Story ID”, or “Defect ID” (if known).
Description can be accessed via the Setup UI, or by directly editing the “*-meta.xml” files associated with certain metadata files in Eclipse.
Document ALL non-code metadata by writing a detailed summary in the Description field.
Description fields typically hold 255 characters.
Custom Objects and Fields can store 1000 characters!
Almost all metadata types expose this field.
Apex classes / triggers being notable exceptions!
This field should always be filled out!
Metadata Descriptions should always include:
Brief description of purpose.
Be mindful of the 255 character limit for most metadata types!
Date of creation, and the name of the original creator.
Helps maintain accountability after automated deployments and sandbox refreshes.
Administrative notes (optional, but recommended if known)
Requested / Approved by?
Related User Story or Stories
Anything else that can tie the metadata component to external documentation.
Implementing Salesforce-specific design patterns is critical to creating a scalable, maintainable, Enterprise Org.
Trigger Design Patterns
“Bulk” Design Patterns
Separation of Concerns
One trigger per Object
Guaranteed order of execution (at least for your code!)
No business logic in triggers
The only logic present in triggers is simple dispatch logic to route each trigger action to a single action handler.
Business logic begins in the trigger handler class.
Use static variables to prevent trigger recursion
All logic run within a trigger’s execution context MUST be bulk-safe.
“Bulk” code acts on collections, rather than single objects.
Need to consider SFDC governor limits at design time.
SOQL Queries
Query for predicate values in sets, rather than using multiple SOQL queries.
NEVER perform queries inside of loops!
Special consideration needed when dealing with large data sets.
Use SOQL For loops when expecting more than 300 records.
Use selective queries!
DML Operations
Always perform DML on collections of SObjects.
Be aware of “hidden” DML, eg. Database.ConvertLead().
NEVER perform DML inside of loops!
Future Calls
Max of 10 @future calls per execution context.
No callouts from triggers! Business logic often requires use of @future methods.
@future methods called from Triggers MUST be designed for bulk!
All code should be “bulk” code!
Public static methods should always be “bulkified”
Does not apply to web service methods
Public instance methods can sometimes be “non-bulkified” if acting only on the instance of the object itself.
Other public methods should have a really good reason to NOT be bulkified.
If you force yourself to always write “bulk” code, it will eventually become second nature.
There are many ways to invoke Apex code, including…
Anonymous Blocks
Triggers
Asynchronous Apex
Future Methods
Scheduled Apex
Batch Apex
Web Services
SOAP / REST
Email Services
Visualforce Classes
Page / Component / List Controllers and Extensions
JavaScript
JavaScript Remoting / AJAX Toolkit
Apex class names have a 40 character limit on length.
Class and Trigger names are written in UpperCamelCase.
Use full names, rather than abbreviations (in most cases).
Avoid using underscores.
When choosing a name:
First word(s) should be the API name of the related component.
If the API name is too long, use a consistent best-approximation.
Optional middle word(s) may provide context regarding purpose.
Last word(s) should indicate “functional type” of the class.
Ignore underscores in the related component’s name.
Be consistent!
Classes with the same functional type share the same suffix.
Reconsider the design of classes that do not fit a single functional type.
Apex class names have a 40 character limit on length.
Class and Trigger names are written in UpperCamelCase.
Use full names, rather than abbreviations (in most cases).
Avoid using underscores.
When choosing a name:
First word(s) should be the API name of the related component.
If the API name is too long, use a consistent best-approximation.
Optional middle word(s) may provide context regarding purpose.
Last word(s) should indicate “functional type” of the class.
Ignore underscores in the related component’s name.
Be consistent!
Classes with the same functional type share the same suffix.
Reconsider the design of classes that do not fit a single functional type.
The following class types have additional naming rules, which are detailed on the following slides.
Triggers and Trigger Handler Classes
Visualforce Classes
Web Service Classes
Email Service Classes
Asynchronous Classes
Service Classes
Utility Classes
Model / Wrapper Classes
Test Classes
Variable Names
SObjects
Type of SObject should be clear by looking at name
Collections
Should always be plural!
Method Names
UseCamelCase…but the first character is always lowercase.
useCamelCase()
All should…
Use descriptive words.
Rapid clarity to others is important!
NEVER use single-character variables.
Objects
Fields
Custom Labels (*special rules)
All should follow these common rules
Always use underscores to separate words in API names.
The first letter of each word in API names should be capitalized.
Always match API names and Labels.
If you change the label, but haven’t deployed the code, do whatever you have to do to change the API name!
Agree on specific org-wide standards, patterns, and practices.
Define a regular Quality Control Cycle.
Determine necessary milestones to go from current state to “Day 1” of the QCC we define.
Determine a workable timetable for hitting these milestones.
Define, assign, and execute tasks.
Executive Endorsement (1 Week)
Finalize Style Guide (1 Day)
Finalize Architectural Standards (2 Days)
Finalize Naming Conventions (1 Day)
Org-Wide Code Audit / Data Model Analysis (1-2 Weeks)
Review Findings of Code Audit (2 Days)
Review Findings of Data Model Analysis (4 days)
Assign Refactoring and Data Model Cleanup Tasks (2 days)
Refactoring / Data Model Cleanup in DEV (3 – 4 Weeks)
Prepare Comprehensive Deployment Package (4 days)
Deploy and Test in Pre-Production Environments (1-2 weeks)
Validate Changes and Prep for Final Deployment (1 week)
Executive endorsement.
Finalize Style Guide.
Finalize Architectural Standards
Finalize Naming Conventions
Publish “Intuit Standards for Salesforce Development”
Expose standards to entire team
Begin bi-weekly code reviews
Execute org-wide code audit