Salesforce高级开发面试题

发布时间:2026/8/14 13:32:56
Salesforce高级开发面试题 Salesforce高级开发面试题一、基础平台能力1. 简述Salesforce安全模型完整体系答案Salesforce安全模型由6层权限从上至下控制数据访问组织级访问登录IP限制、登录时段、双因素认证对象权限Profile/权限集控制对象CRUD、字段级可见/编辑记录级共享角色层级、共享规则、团队共享、手动共享、Apex共享字段级安全字段集、Profile字段可见性屏蔽敏感字段FLS字段级校验代码中stripInaccessible()强制校验字段权限分享/数据权限上下文运行用户、系统上下文、with sharing/without sharing类修饰符。核心Profile管能看到什么对象共享规则管能看到哪条数据。2. Apex Governor Limits是什么列举高频限制及优化方案答案Governor Limits是Salesforce多租户隔离的资源限制防止单用户占用全部平台算力高频限制SOQL单次最多查询5万条单次事务最多100条SOQL优化批量查询、外层循环查、子查询聚合避免循环内写SOQLDML单次事务150条优化集合批量插入/更新循环外组装List异步Apex、触发器单独限制堆内存、CPU执行时间限制。通用优化批量处理框架Batch Apex处理百万级数据Queueable拆分高并发任务。3. with sharing / without sharing 区别什么场景使用答案with sharing遵循当前执行用户的共享规则业务查询类、报表逻辑必须使用保证数据权限合规without sharing忽略记录共享规则仅遵循Profile对象权限适用场景后台数据同步、跨用户数据统计、系统批量清理任务⚠️ 注意触发器默认without sharing类继承时子类会继承父类共享声明。二、全栈开发Apex VF LWCJD核心技能1. LWC、Aura、Visualforce三者选型差异新项目为什么优先LWC答案Visualforce基于服务器渲染页面刷新卡顿老项目维护使用不推荐新开发Aura早期前端框架组件层级复杂、加载慢官方停止新特性迭代LWCLightning Web Component原生Web标准ES6、Web Component轻量、加载速度快、浏览器原生支持选型规则全新功能统一LWC遗留老页面保留VF/Aura逐步迁移高性能表单、列表、弹窗组件全部使用LWC。2. LWC父子组件传值、通信方式有几种答案父→子api装饰器子组件接收父传入参数子→父自定义事件this.dispatchEvent()父组件监听onXXX事件跨无关联组件使用Lightning Message Service(LMS)消息总线全局缓存localStorage/sessionStorage轻量临时数据Apex后台统一查询共享数据。3. 触发器执行顺序触发器最佳实践答案标准执行顺序加载原始记录2. 执行系统校验3. before触发器4. 执行DML更新数据库加载更新后数据6. after触发器7. 分配共享规则8. 工作流/流程构建器9. 后流程触发器。最佳实践单对象仅写1个触发器拆分Handler业务类分离触发器与业务逻辑避免触发器写复杂逻辑大量计算移至Batch/Queueable批量处理不使用循环SOQL/DML递归控制静态布尔标记防止触发器死循环。三、系统集成REST/SOAP API对接ERP/OA场景1. Salesforce调用外部系统REST接口有几种方式区别答案Apex CalloutHttpRequest/HttpResponse灵活适配复杂请求适合动态参数External Services外部服务导入OpenAPI规范自动生成Apex封装类无需手写解析JSONFlow外部操作无代码集成简单接口快速对接限制所有Callout有超时限制事务内同步Callout次数有限高并发方案使用Queueable异步调用外部接口避免阻塞主事务。2. 外部系统推送数据到Salesforce如何保证接口安全与幂等答案安全方案使用Named Credential命名凭证存储账号密钥代码不硬编码账号密码IP白名单限制外部系统服务器地址OAuth2.0/JWT鉴权拒绝明文账号密码传参幂等防止重复推送重复建单外部传入唯一业务单号作为外部ID(External Id)使用upsert操作存在则更新、不存在则新建接口接收后记录处理日志重复单号直接返回成功不执行DML。3. SOAP与REST集成分别适用什么场景答案SOAP传统ERP、老旧财务系统强规范XML报文适合金融、财务有严格报文校验的场景REST互联网平台、OA、SaaS系统JSON轻量报文开发调试简单新项目优先REST。四、性能优化海量数据场景JD专项要求1. 百万级存量数据清洗用什么方案步骤是什么答案使用Batch Apex批量框架核心步骤Database.QueryLocator分批拉取数据单次上限5万条execute方法内批量处理、DML分批次提交finish方法执行收尾日志、通知、汇总统计搭配Async SOQL规避查询限制优化点开启并行批处理调整批次大小200-1000条平衡DML限制与执行效率。2. SOQL查询慢怎么排查优化答案排查步骤使用Query Plan查看执行计划无索引字段全表扫描是核心瓶颈优化手段过滤条件字段创建自定义索引External Id、筛选高频字段避免通配符%开头模糊查询减少不必要子查询、大字段富文本、附件查询聚合场景使用聚合SOQL不在代码循环做统计高频静态查询结果缓存至Cache。五、DevOps SF DX持续交付要求1. Salesforce DX的作用与传统开发模式区别答案SF DX是Salesforce现代化开发工具链本地源码化将Metadata元数据转为本地文件支持Git版本控制Scratch Org临时沙箱快速创建干净测试环境用于单元测试一键部署sfdx命令推送/拉取元数据适配CI/CD流水线传统模式直接在生产/测试沙箱点击部署无本地源码版本追溯困难无法自动化发布。2. 简单描述一套Salesforce CI/CD流水线流程答案开发本地使用SF DX编写代码提交至Git仓库Git触发流水线自动创建Scratch Org流水线自动部署代码、执行全部Apex单元测试测试通过自动部署至测试沙箱人工验收后手动触发部署至预发/生产环境生产部署后自动执行冒烟测试输出部署报告。六、业务架构综合场景题高级开发/技术负责人必问1. 业务需求ERP订单实时同步至Salesforce高并发、不允许丢单给出完整技术方案参考答案鉴权层ERP通过JWT OAuth接口推送IP白名单外部唯一单号幂等upsert接收层自定义REST Apex接口仅做参数校验复杂逻辑放入Queueable异步任务快速响应ERP避免超时数据层External Id绑定ERP订单号upsert创建/更新订单关联客户产品主数据异常兜底调用失败、数据校验错误存入自定义错误日志对象定时Batch重试失败单据监控平台事件记录同步状态报表监控失败率异常邮件告警性能Queueable分队列隔离高并发拆分事务避免触发Governor Limits。2. 单元测试覆盖率要求怎么写高质量测试用例答案Salesforce生产部署强制覆盖率≥75%高质量用例要点覆盖正常流程、边界数据、异常报错场景模拟不同Profile、共享权限用户执行校验FLS/共享规则生效批量场景构造上千条测试数据验证触发器/Batch批量逻辑隔离外部Callout使用Mock模拟第三方接口返回不依赖真实系统避免仅执行不校验每条逻辑都有System.assert断言验证结果。七、加分项相关面试题认证/企业项目/敏捷1. 你持有哪些Salesforce认证Application Architect核心考察什么能力答案常见认证PDI/PDII开发者、LWC Specialist、Application Architect架构师核心考察多系统集成方案、数据模型设计、大规模性能治理、安全权限整体方案、企业级交付流程设计不局限单一代码开发。2. 敏捷Scrum开发在Salesforce项目如何落地答案2周迭代需求拆分为用户故事区分配置/开发任务每日站会同步SF开发、集成、接口进度迭代结束在测试沙箱演示验收迭代末复盘性能问题、部署卡点、集成对接阻塞点需求变更走变更评审避免中途大幅修改元数据结构。八、HR综合软问题1. 业务部门提出不合理、无法平台实现的需求你怎么处理答案先梳理业务真实诉求区分“表面需求”和“底层业务目标”输出2套方案①折中平台原生实现方案②第三方集成替代方案附带成本、性能、工期对比同步产品、业务负责人说明平台底层限制Governor、权限机制若短期无法实现给出临时过渡方案长期迭代规划。2. 同时对接ERP、OA两套系统集成多任务并行如何排期答案拆分依赖关系主数据客户集成优先订单单据依赖客户主数据后置隔离两套集成的Queueable/批处理队列避免资源抢占同步两套外部系统对接人错开联调时间窗口开发、单元测试、联调、生产分阶段里程碑每日同步阻塞风险。