触发器
在记录被创建、更新或删除之前或之后自动运行的代码,用于执行验证规则或流程本身无法独自承担的规则或计算。
越来越多迪拜企业把销售、服务和运营流程运行在 Salesforce 上,一旦某个工作流需要点击式配置无法表达的逻辑,就到了在迪拜聘请 Salesforce Apex 开发工程师的时候。Apex 是 Salesforce 自己的编程语言,一门直接运行在平台上的强类型语言,让开发工程师能编写标准自动化工具触及不到的触发器、批处理任务、定时任务和自定义业务逻辑。
Apex 位于界面背后。Salesforce 管理员负责配置字段、流程和页面布局,Lightning 开发工程师搭建用户看到的屏幕内容,而 Apex 开发工程师编写的代码,则在记录被保存、数千条记录需要在夜间更新,或两个系统需要在无人点击按钮的情况下交换数据时运行。如果您的项目其实更关乎屏幕本身,而不是其背后的逻辑,我们的 Salesforce Lightning 开发工程师 页面更贴合需求。
本页面向的是已经判断出、或怀疑自己的 Salesforce 项目需要代码的企业。以下各节涵盖这些代码实际是什么样子、如何检验其质量,以及如何以匹配您项目的方式在迪拜聘请 Salesforce Apex 开发工程师。
Apex 开发工程师搭建什么
具体的交付成果,而不是泛泛的职位描述。
在记录被创建、更新或删除之前或之后自动运行的代码,用于执行验证规则或流程本身无法独自承担的规则或计算。
处理超出正常事务限制的大批量记录的任务,例如夜间清理、批量重新计算或每晚的数据同步。
在后台运行、不让用户干等的工作,把多个任务串联起来或调用外部系统,而不阻塞用户眼前的屏幕。
调用外部 API,或把 Salesforce 数据开放给外部系统的代码,把组织与网站、财务系统或其他业务工具连接起来。
Lightning 组件调用以读取或写入数据的服务器端逻辑,与组件自身的界面和布局是两回事。
与代码一同编写的自动化测试,Salesforce 要求先有这些测试,该代码才能部署到正式组织中。
值得关注的技能
当前的实践方式,而不是一堆流行词。
| 技能或实践 | 良好水平的表现 | 为什么重要 |
|---|---|---|
| 批量安全代码 | 触发器和类的编写考虑到一次处理一批记录,而不只是演示中的单条记录 | 只能一次处理一条记录的代码,在真实数据加载第一次到来时就会失败 |
| 调控限制意识 | 理解平台在单次事务中对查询、DML 语句和 CPU 时间的限制,并据此设计 | 忽视这些限制的代码在测试中运行正常,却会在生产环境中失效 |
| 测试覆盖率与质量 | 编写带有真实断言的有意义测试类,而不是只为达到某个百分比 | Salesforce 要求部署的 Apex 代码达到最低测试覆盖率才能上线,覆盖率高但断言薄弱依然会掩盖真实漏洞 |
| 异步模式 | 清楚针对某个问题何时该用触发器、可排队任务、批处理任务还是定时任务 | 用错模式,要么超时,要么占用其他自动化所需的资源 |
| 集成安全 | 在任何外部调用上都妥善处理身份验证、错误处理和重试 | 一次静默失败或泄露凭证的外部调用,是您也会一并承担的风险,而不只是开发工程师的问题 |
Salesforce 官方关于 Apex 单元测试与代码覆盖率要求 的指南,为代码能部署到正式组织设定了最低覆盖率门槛,并专门提到批量测试和分支覆盖率,这正是在迪拜聘请的 Salesforce Apex 开发工程师本应已经达到的标准。
与我们合作的方式
拥有持续积压的自动化、集成和报表工作的组织,适合专职开发工程师,按月计费,由您的团队直接指挥。一项范围明确的工作,例如一次集成或一个批处理流程,更适合限定范围的项目,配有书面范围说明和干净的移交环节。招聘支持适合希望把 Salesforce Apex 开发工程师直接招入自己薪资体系的企业,我们协助撰写职位描述、筛选候选人并进行技术评估。咨询服务适合已经有 Apex 代码在生产环境运行、希望在进一步投入预算前,获得一份有经验的独立意见来评估其设计或测试覆盖率的企业。
评估候选人
能揭示真实生产环境经验的检验方式。
无论您以哪种方式在迪拜聘请 Salesforce Apex 开发工程师,这些检验方式都适用,无论是您自己主持面试,还是请我们作为招聘支持的一部分来进行技术评估。
询问它解决了什么业务问题,为什么用这种方式组织代码,以及如果重写会做出哪些改动。
关注设置中是否有真实的断言和批量数据,而不是纯粹为了满足覆盖率要求而写的敷衍测试。
在生产环境中真正遇到过调控限制的候选人,会给出具体的描述,而不是含糊其辞。
询问外部系统缓慢、宕机或返回错误数据时会发生什么,以及故障是如何被记录的。
真正把 Apex 部署到生产环境的候选人,会有一个关于覆盖率或调控限制失败、以及如何解决它的具体故事。
认证
Salesforce 自身的开发工程师凭证证明了什么,以及如何核实。
Salesforce 通过其学习平台 Trailhead 运营自己的 Platform Developer 凭证,涵盖 Apex、数据建模和平台的编程能力,分为两个深度级别。我们不会为自己的团队声称持有这些凭证,但在代表您筛选候选人时,可以将其列为要求。
在迪拜聘请一位 Salesforce 的 Apex 开发工程师时,请先索取对方的 Trailhead 凭证主页,再决定是否相信任何认证说法,因为持证者可以直接分享该链接。过期或未维护的认证也值得一并询问,因为 Salesforce 要求完成周期性的维护模块才能保持凭证的有效状态。
阿联酋相关要点
当您的 Salesforce 组织涉及个人数据时相关。
《2021 年第 45 号联邦法令》,即阿联酋关于个人数据保护的联邦法律,规定了保障个人数据安全、并在有限例外之外经同意后处理个人数据的义务,无论处理发生在何处。如果某个触发器或集成读取或搬运客户或员工数据,请尽早与工作负责人提出这一点,而不是等它搭建完成之后。
Salesforce 存储和显示阿拉伯语文本无需特殊处理,但用于格式化、排序或搜索这些文本的 Apex 代码,需要用真实的阿拉伯语数据编写和测试,而不是等到上线之后才发现问题。
本页属于我们的 Salesforce 类别,是更大范围的 迪拜招聘开发人员 板块的一部分。如果您的 Salesforce 项目主要是配置和轻度定制,而不是自定义代码,我们通用的 Salesforce 开发工程师 页面可能是更好的起点;如果您需要的代码已经存在,只是需要与其他系统对接,请参阅我们的 Salesforce 集成开发工程师 页面。搭建上线后的日常平台管理,请参阅我们的 Salesforce 管理员 页面;对于简历上出现的认证说法,我们的 持证 Salesforce 开发工程师 页面说明了它证明了什么、又没有证明什么。
直接解答
不需要。Salesforce 的设计让管理员无需一行代码,就能配置字段、页面布局、验证规则和流程,许多企业从来都用不上更多。当逻辑确实超出点击式工具所能表达的范围,例如复杂的记录计算、批量数据处理或实时集成,才需要 Apex 开发工程师。
管理员通过平台自身的声明式工具进行配置,Apex 开发工程师则编写和测试代码,因此这两个角色只在边缘有所重叠。大多数 Salesforce 工作两者都需要,很多团队会招聘一位首先擅长配置的人,再专门针对需要 Apex 的部分引入相应支持。
在工作层面通常可以,因为 Apex 常常作为 Lightning 组件背后的控制器存在。如果项目主要关乎界面本身,例如一个自定义应用界面或复杂表单,我们的 Salesforce Lightning 开发工程师页面对这一方面有更深入的说明。
除非组织的整体测试覆盖率达到 Salesforce 的最低门槛,否则新的 Apex 代码无法进入正式组织,因此请要求查看现有的测试类以及它们实际检查了什么,而不只是覆盖率百分比。一个断言薄弱的高数字,能说明的问题反而比一小批写得扎实的测试更少。
我们不会代表自己的团队声称持有认证。Salesforce 设有自己的 Platform Developer 认证,如果这份凭证对您的项目很重要,我们可以在筛选或评估候选人时将其列为明确要求,并向您展示如何直接核实。
资料来源
书面固定价格
已收到,我们正在为您撰写报价。
工作时间内您将在 45 分钟内收到。请查收确认邮件。