什么是Apex
apex是一种强类型的,面向对象编程语言,开发人员通过Apex表现业务逻辑来补充salesforce平台所需的功能
Apex和java很像,可以通过各种用户启动的事件来触发如记录更新,按钮单击或者外部web请求
生产环境中可以自定义Apex和visualforce吗?
Apex无法在生产组织中进行自定义,必须通过沙盒进行更改和部署,并满足测试覆盖范围,visualforce可以直接在生产环境中进行自定义
Apex触发器何时可以运行
apex触发器可以在保存记录之前或者之后运行,通常使用before操作来验证需要插入的信息。而after触发器用来访问用户或系统之前输入的数据
什么时候使用Apex而非工作流或者进程生成器
- 工作流规则和进程生成器操作时遇到功能上限制时可以使用Apex来解决。例如从外部系统提取数据
- 当处理某些大量数据时,由于限制较少,Apex可能比声明性选项更有效
什么是官方限制
salesforce在多租户环境中运行,意味着所用资源(CPU、存储、内存)与salesforce平台上其他公司共享。这意味着必须要进行限制。确保不会让代码或流程占用太多共享资源
什么是Apex测试覆盖率
为了确保代码符合某些标准,Apex代码覆盖率显示了测试方法在你的类和触发器中执行了多少行可执行代码。代码覆盖率为覆盖行数/覆盖行数+未覆盖行数
部署到生产所需的最低测试覆盖率为75%
什么是Apex最佳做法
- 批量化代码
- 避免在for循环中使用SOQL查询或者DML语句
- 避免硬编码id
Apex中可以使用的集合类型
- List: 是元素的有序集合,这些元素通过索引区分,List元素可以是任何数据类型(基本数据类型、集合、类、用户自定义类型…)
- Set:是不包含任何重复项的无序元素集合,Set也可以是任何数据类型
- Map:是键值对的集合,其中每一个唯一键都映射到单个值,键和值可以是任何数据类型