1. Что такое Apex?
Apex — это язык программирования, разработанный компанией Salesforce для написания пользовательского кода на платформе Salesforce.
2. Различные типы коллекций в Apex?
Apex поддерживает три типа коллекций: списки, наборы и карты.
3. Скажите, в чем разница между списком и набором в Apex?
Список — это упорядоченная коллекция, которая может содержать повторяющиеся значения, в то время как набор — это неупорядоченная коллекция, которая не допускает повторения значений.
4. Что такое триггер в Apex?
Триггер — это Apex-скрипт, который запускается до или после определенных событий языка управления данными (DML), таких как вставка, обновление, удаление и т.д.
5. Почему мы используем ключевое слово “with sharing” в определении класса Apex?
Ключевое слово “with sharing” обеспечивает соблюдение правил общего доступа, которые применяются к текущему пользователю.
6. Что такое ограничение на управление в Apex?
Управляющие ограничения — это ограничения времени выполнения, применяемые Salesforce для обеспечения эффективного и безопасного выполнения кода Apex.
7. Назовите несколько типов управляющих ограничений в Salesforce.
Некоторые типы управляющих ограничений включают ограничения на запросы, операции с DML, загрузку процессора, размер кучи и выноски.
8. Как вы можете обрабатывать исключения в Apex?
Вы можете обрабатывать исключения в Apex, используя блоки try-catch. Исключения могут быть перехвачены с помощью блоков catch и может быть применена соответствующая логика обработки ошибок.
9. В чем разница между триггером и конструктором процессов в Salesforce?
Триггер — это Apex-скрипт, который запускается на основе событий DML, в то время как Process Builder — это инструмент автоматизации «наведи и щелкни», позволяющий определять процессы без написания кода.
10. Как вы предотвращаете превышение пределов регулирования в своем коде?
Вы можете предотвратить превышение пределов регулирования, оптимизируя свой код, используя массовую обработку и придерживаясь лучших практик. Мониторинг пределов регулирования важен во время разработки.
11. Для чего используется аннотация @AuraEnabled?
Аннотация @AuraEnabled предоставляет доступ к методам Apex, которые будут вызываться из компонентов Lightning.
12. Как вы можете сделать класс или метод глобально доступными в Apex?
Вы можете использовать модификатор “global” access, чтобы сделать классы или методы доступными за пределами вашего приложения или пространства имен.
13. Объясните разницу между Trigger.old и Trigger.new в контексте триггера.
Trigger.old представляет старую версию записей до их обновления, в то время как Trigger.new представляет новую версию записей после их обновления.
14. Какова цель использования класса “Test” в Apex?
Класс “Test” используется для написания методов тестирования, чтобы гарантировать, что ваш Apex-код работает должным образом.
15. Как вы выполняете перенос во внешнюю службу в Apex?
Вы можете выполнять перенос, используя классы HTTP в Apex, такие как Http и HttpRequest.
16. Что такое пакетный класс Apex?
Пакетная обработка Apex позволяет обрабатывать большие объемы данных небольшими порциями, чтобы избежать проблем с ограничениями регулятора.
17. Как можно реализовать одноэлементный шаблон в Apex?
Вы можете реализовать одноэлементный шаблон, используя закрытый конструктор и статическую переменную экземпляра в классе.
18. Объясните разницу между триггером «до» и триггером «после».
Триггер before срабатывает перед сохранением данных в базе данных, в то время как триггер after срабатывает после сохранения данных.
19. Какова цель использования класса “Database” в Apex?
Класс “Database” предоставляет методы для выполнения операций с DML, таких как вставка, обновление, удаление и upsert.
20. Как вы можете запланировать запуск класса Apex на определенное время?
Вы можете использовать планировщик Salesforce для выполнения класса Apex в указанное время с помощью класса “Scheduler”.
21. Что такое метод future в Apex?
Метод future используется для выполнения асинхронной обработки и помечается ключевым словом “@future”.
22. Как вы можете предотвратить рекурсивные триггеры в Apex?
Вы можете использовать статическую переменную или статический набор, чтобы отслеживать, был ли триггер уже запущен, чтобы предотвратить рекурсию.
23. Какова цель класса “Limits” в Apex?
Класс “Limits” предоставляет методы для получения информации о ограничениях регулятора текущего контекста выполнения Apex.
24. В чем разница между PageReference и объектом PageReference в Apex?
PageReference используется для перехода на страницу Visualforce, в то время как объект PageReference используется для управления URL-адресами в Apex.
25. Как можно отладить код Apex в Salesforce?
Вы можете использовать инструкции System.debug() для записи отладочной информации в журналы отладки. Кроме того, вы можете использовать консоль разработчика или настроить журналы отладки в программе установки.