15个Salesforce开发高频面试问题必须掌握!

作为SaaS行业的先驱,Salesforce的发展一路高歌猛进。Salesforce开发人员不仅能学习到最新的技术,而且比其他行业的同岗位享有更高的薪水,这也驱使了越来越多人加入Salesforce大军。

通过自由侠部落目前发布的岗位机会来看,即使在二线城市5年以上经验的中高级开发,可以拿到年薪35W,并且是最有涨薪潜力的岗位。整体就业市场对于Salesforce开发人员的技能要求也在不断提升,但是不要慌,开发面试指南将帮你斩获心动的Offer!

在之前的文章中,为学习者总结了【平台知识】、【Apex编程】的面试问题,本篇文章将继续从【集成】、【Lightning组件】、【安全开发】、【可配置开发】等多个模块帮助求职者理清思路。

第一部分:集成

1 如何集成到外部REST Web服务中?

为了与外部REST Web服务集成,倾向于使用HTTP 标注来调用外部API。可以使用JSON和XMLStreamWriter类来构建负载以匹配外部API的细节。

Salesforce_13">2 外部系统如何集成到Salesforce中?

外部系统可以利用Salesforce提供的内置REST API进行简单的集成。这可以用于创建、更新、查询记录。

3 如何保护用于出站集成的凭证?

根据凭证的类型,主要有几个选项。最优选的是命名凭证(Named Credentials),指定基本端点和身份验证凭证。这些是首选,因为Salesforce会处理身份验证,防止凭证被泄露。

如果命名凭证不合适,可以选择将凭证存储在自定义元数据类型中,这将允许在不同环境中使用不同的凭证,并且可以保护访问元数据类型的权限。

第二部分:Lightning组件

4 Lightning Web组件和Aura组件有什么区别?

Lightning Web Components是使用当前Web标准构建的,通过使用Web Components来构建自定义HTML元素,旨在以轻量级和高性能的方式运行。

Aura组件是遗留的Lightning组件框架,但仍使用JavaScript和HTML进行开发。

5 为什么要使用Lightning Web组件而不是Aura组件?

理想情况下,应该使用Lightning Web组件进行所有新开发,因为更易于开发并且性能更好。开发人员应该避免使用Aura组件,除非是LWC尚不支持的功能,在这种情况下,应该将LWC包装在Aura组件中。

6 如何配置Lightning Web组件?

开发人员可以在组件js-meta.xml文件中定义可配置属性。这是通过在特定目标的targetConfig标签中定义一个属性标签来实现的,并且可以进一步扩展到只应用于特定对象,或者限制可以放置组件的对象。

7 Lightning组件可以在哪里使用?

Lightning组件可以部署在整个组织的许多地方。这些可以由管理员决定,或由开发人员添加。其中包括:

实用工具栏
Outlook和Gmail集成
Flows
Visualforce页面
外部网页

8 SLDS是什么?

Salesforce Lightning Design System( SLDS) 是Salesforce用于设计、样式化和构建 Salesforce Lightning所有方面的用户界面设计框架。

开发人员可以利用SLDS提供的CSS样式或组件标记模板来构建自定义组件,从而为平台的其余部分提供一致的UI。SLDS还提供了有关可访问性、语言指导和图标的指南。

第三部分:安全开发

9 如何在Apex代码中实施现场级安全性 (FLS)?

如果是正在执行查询,我们可以将WITH SECURITY_ENFORCED子句添加到查询中。如果缺少对请求字段的任何权限,这将导致引发权限不足异常。

如果需要更细粒度或者希望简单地删除用户没有足够权限的字段,我们可以使用Security.stripInaccessible()方法,检查并删除所请求的特定上下文的任何字段值,例如删除用户无权更新的字段。

10 如何在Apex代码中实施共享规则?

开发人员可以定义类,以在其定义中使用with sharing关键字。或者使用继承的共享关键字,当我们需要动态处理代码时,从它的调用类继承共享修饰符。

11 什么情况下应该在代码中绕过共享和FLS?

在运行系统级进程时绕过共享和FLS。如果确实需要绕过共享和FLS进行用户操作,需要确保没有机会执行非预期的数据或操作。

这可以通过将需要绕过的特定操作迁移到单独的类,并执行其余的逻辑,同时强制共享和FLS。

12 如何保护动态SOQL?

在执行从用户那里获取输入的动态SOQL时,必须清理用户输入。开发人员可以通过确保在执行查询之前转义所有单引号来实现这一点。也可以使用绑定变量,即使是在动态SOQL中。

第四部分:可配置开发

13 累计汇总字段是什么?

累计汇总字段(Roll-up summary)是位于主详关系的主控端的特殊字段。这些字段的值是基于关系的详细信息方的聚合计算的,可以是从记录数到字段值总和的任何值。当我们希望聚合属于主详关系一部分的记录值时,它允许我们跳过使用Apex。

14 什么是自定义元数据类型?

自定义元数据类型是开发人员设计的元数据,有助于在Salesforce实例中设计和构建可自定义的应用程序。这是通过设计类似于自定义对象的元数据类型,然后创建该类型的记录来定义所需的行为。

15 什么是Dynamic Apex?

Dynamic Apex是一种技术,通过在代码中动态访问sObjects和字段来使代码更加灵活,而不是声明式访问代码。这主要是通过使用sObject令牌来完成的,并描述了在代码中动态访问和设置sObject字段值。这可以与动态 SOQL结合使用,基于运行时上下文而不是设计时动态构建查询。

Salesforce开发的面试中,准备好这些简单问题只是给面试官留下好印象的第一步。打铁还需自身硬,对于开发而言,专业的技能、处理项目的能力才是候选人脱颖而出的关键。

♥️赠送给小伙伴们的福利如下♥️:

  1. 赠送价值Salesforce官方140美金考试优惠券,先到先得~
  2. Salesforce高薪热门岗位;
  3. 千人收藏的《考证攻略》
  4. 高频面试问题、面试技巧
  5. 免费学习资料;

http://www.niftyadmin.cn/n/174566.html

相关文章

机器学习算法--朴素贝叶斯(Naive Bayes)

1. 朴素贝叶斯(Naive Bayes) 朴素贝叶斯的介绍 朴素贝叶斯算法(Naive Bayes, NB) 是应用最为广泛的分类算法之一。它是基于贝叶斯定义和特征条件独立假设的分类器方法。由于朴素贝叶斯法基于贝叶斯公式计算得到,有着坚实的数学基础,以及稳定…

Pycharm的汉化方法(pycharm改为中文版)

很多开始接触python的朋友都会用到一款工具:pycharm,但默认是英文版的不知从何下手,本文介绍两种不同的pycharm汉化方法,将其变为中文版的界面。(对于windows电脑和mac电脑均有说明) 方案一: 不…

2023.3.22

文章目录13:static关键字**一:static修饰变量:****二:static修饰方法:****三:代码块**14:包15:封装16:继承13:static关键字 创建时间上: 静态的属…

【Vue全家桶】带你全面了解通过Vue CLI初始化Vue项目

【Vue全家桶】带你全面了解通过Vue CLI初始化Vue项目 文章目录【Vue全家桶】带你全面了解通过Vue CLI初始化Vue项目写在前面一、Vue CLI脚手架1.1 认识Vue CLI1.2 Vue CLI 安装和使用二、Vue create 项目的过程2.1 创建项目2.2选择 Manually select features创建2.3 选择Vue的版…

java使用线程池和Future接口实现异步的实例

线程池可以提供线程的复用和管理,避免线程频繁创建和销毁的开销。而Future接口则可以获取异步任务的执行结果和状态,避免了阻塞等待异步任务完成的情况。下面是一个简单的示例代码: import java.util.concurrent.*;public class AsyncExample…

【计算机视觉】CCV 2020 | “劫富济贫”:长尾数据的特征空间增强

文章目录一、贡献二、思路三、两个假设四、方法4.1 CAM(类激活图)4.2 可视化特征4.3 流程五、实验六、补充内容6.1 融合层的深度6.2 头部和尾部的划分一、贡献 对于没有充分表达的尾部类则需要额外的知识来补充,所以作者利用头部的类无关特征…

leetcode:2500. 删除每行中的最大值(python3解法)

难度:简单 给你一个 m x n 大小的矩阵 grid ,由若干正整数组成。 执行下述操作,直到 grid 变为空矩阵: 从每一行删除值最大的元素。如果存在多个这样的值,删除其中任何一个。将删除元素中的最大值与答案相加。注意 每执…

< Linux > 守护进程

目录 1、守护进程 守护进程的概念 进程组和会话 2、守护进程化的方式 TCP网络程序(守护进程化) TCP网络程序(守护进程化)gitee地址 daemon创建守护进程 nohup命令 1、守护进程 守护进程的概念 守护进程也叫做精灵进程&#xff…