Anti-Pattern: DML statements

DEX450 - Module 13: Strategies for Designing Efficient Apex Solutions

📄 第 342 页 🎬 视频课程

课程章节介绍

让我们来聊聊Salesforce中的反模式,特别是关于TLR(Trigger Logic Reuse)声明的问题。 首先,什么是TLR声明呢?简单来说,TLR声明是一种在触发器中使用的方法,目的是为了重用逻辑代码。听起来不错,对吧?但是,如果在循环中进行ADL(Apex Data Loader)操作,你的代码可能会遇到一些严重的问题。 想象一下,你有一个触发器,它在每次记录更新时都会执行一些逻辑。如果你在循环中对每个记录都执行TLR声明,那么每次循环都会触发一次完整的逻辑执行。这不仅效率低下,而且你的代码可能会很快达到Apex管理器的限制。 Apex管理器有一些严格的限制,比如每个事务中最多只能执行100个SOQL查询,或者最多只能执行10,000条DML语句。如果你的代码在循环中频繁执行TLR声明,很容易就会超过这些限制,导致代码失败。 所以,为了避免这种情况,我们应该尽量避免在循环中进行TLR声明。相反,可以考虑在循环外部执行一次TLR声明,然后在循环内部只处理必要的逻辑。这样不仅可以提高代码的效率,还能避免达到Apex管理器的限制。 总结一下,TLR声明虽然有用,但在循环中使用时要特别小心。记住,好的代码不仅要功能正确,还要高效且符合平台的最佳实践。希望这个解释对你有帮助!