Apex - язык, созданный компанией SalesForce для разработки и поддержки собственной одноименной CRM. Апекс является объектно-ориентированным языком со строгой типизацией. По синтаксису он больше всего напоминает язык Java.
Система управления клиентами SalesForce и, соответственно, язык Apex более популярны на западе, чем в России и странах СНГ. Но и здесь у продукта есть достаточно пользователей.
Особенности Apex
- Строгая типизация.
Присвоение переменным определенных типов данных защищает код от непреднамеренных ошибок. В числовую переменную ни при каких условиях не получится записать текстовую строку, и наоборот. - Автоматизированные обновления.
Программное обеспечение от SalesForce обновляется автоматически при выходе новых релизов. Разработчику не нужно устанавливать новые версии ПО самостоятельно. - Полная интеграция с внутренней базой данных.
При программировании на Apex обращаться к БД можно напрямую из кода. В язык встроены все необходимые DML запросы для управления таблицами - SELECT, INSERT, UPDATE, DELETE. - Легкое тестирование решений.
С помощью встроенного инструмента для тестов код на Апекс можно сделать более эффективным и работоспособным. - Продуманная среда разработки.
Developer Console IDE от SalesForce не требует долгих манипуляций с установкой. Писать код можно непосредственно в браузере. При этом среда поддерживает подсветку синтаксиса, подсказки и прочие необходимые вещи.
Для программирования на Apex доступно также использование привычной многим разработчикам VisualStudio.
Плюсы и минусы языка
К преимуществам Апекса для разработчика и заказчика можно отнести следующие его аспекты.
- Простой синтаксис.
В Apex синтаксис основывается на распространенном ООП языке Java, так что он хорошо подходит для изучения в качестве второго языка. Работа со строковыми переменными, примитивами, классами и объектами в Апекс полностью соответствует общепринятой объектно-ориентированной парадигме. - Легкий доступ к базе данных.
Обращение к БД по принципу out-of-the-box (прямо из коробки) значительно упрощает и ускоряет разработку. DML запросы встраиваются прямо в функции, подключение сторонних модулей не требуется. - Гайды от разработчика и поддержка.
В официальной документации от SalesForce можно найти ответы на все вопросы по разработке на платформе. База знаний постоянно актуализируется. Также есть официальная служба поддержки от SF, куда можно обратиться за разъяснениями. - Специальная платформа для освоения языка.
Trailhead - это среда “песочница” для Apex, с заданиями по обучению программированию, инструментами тестирования и геймификацией. Под одним аккаунтом в Trailhead можно создать до 10 тестовых проектов.
Как у любого другого языка, у Apex есть и недостатки.
- Ограниченность ресурсов.
Система Force, в которой разрабатываются продукты на Apex - платная. Многие функции и возможности доступны только на дорогих тарифах, которые не всегда выгодны для небольших компаний. - Узкая направленность.
Апекс - язык CRM SalesForce. В других сферах он, по факту, не применяется. При этом внутри своей платформы Apex отвечает за все аспекты и не требует подключения дополнительных инструментов. - Немногочисленное сообщество, недостаток адаптированных материалов.
В России и СНГ Апекс заметно менее популярен, чем в западных странах. Официальная документация и сайты до сих пор не переведены на русский язык.
Где применяется Apex
В CRM SalesForce есть несколько способов применения Апекса.
- Доработка программы под индивидуальные требования компаний-клиентов.
- Интеграция сторонних программ в CRM SalesForce.
- Создание и обслуживание почтовых рассылок через внутренний сервис SF.
- Программирование кастомных бизнес-процессов в системе клиента.
- Комплексная проверка данных.
- Модификация записей и объектов с привязкой к срабатыванию триггера.
- Разработка пользовательских транзакций, работающих с несколькими объектами.
На Apex программируется frontend и backend для Salesforce. В CRM добавляются новые функции, расширяются уже имеющиеся возможности, быстро настраивается интеграция с базой данных.
Перспективы языка
SalesForce и Apex - пока малоизвестные технологии для наших широт. При этом инструмент обладает всеми необходимыми средствами для построения эффективной системы управления компанией. Поэтому ее распространение достаточно перспективно.
Разработчик платформы постоянно совершенствует свой продукт, делает его более гибким и удобным для пользователей.
Основные понятия и технологии
Рассмотрим базовые аспекты построения кода на языке Apex.
Переменные и типы данных
Для работы с переменной в Апекс ей нужно присвоить определенный тип данных. Язык поддерживает стандартные для ООП типы - integer, string, boolean, date, object и другие. Но есть в Apex и специальные типы данных - SObject. По сути, он представляет собой таблицу с данными, аналогичную таблицам SQL. Программист может использовать как стандартные sObject, заранее предусмотренные в языке, так и создавать кастомные.
Объявляется и присваиваются переменные простой записью.
Integer x = 2
String txt = ‘text’
Account objAccount = new Account()
Для проверки значения, записанного в переменную, нужно вызвать команду System.debug и указать имя интересующей переменной.
SOQL Query
Команды SOQL Query это подобие языка SQL, встраиваемого в код Apex. Через SOQL разработчик обращается к базе данных SalesForce SFDC - ищет и проверяет нужные записи, связывает родительские и дочерние данные и т. д.
Например, этот отрезок кода находит в БД счета-фактуры, созданные за сегодняшний день.
SELECT Id, Name, APEX_Customer__r.Name, APEX_Status__c FROM APEX_Invoice__c
WHERE createdDate = today
Данные в таблицах можно анализировать с помощью специальных агрегатных функций - складывать, вычислять среднее значение и т. д.
Поиск данных возможен единовременно только в одном sObject.
DML запросы
DML заявления - это команды для редактирования информации в базе данных. На них строится большая часть работы в CRM - создание и редактирование счетов, хранение клиентских записей, статусы сделок и пр.
Перечислим четыре основные команды:
- insert - добавление нового объекта;
- update - обновление существующего объекта;
- upsert - обновление уже имеющегося объекта или создание нового;
- delete - удаление выбранных объектов.
Удаленные записи всегда можно восстановить вместе со связанными объектами, потому что по команде delete запись переносится в корзину, а не стирается из памяти насовсем.
Loop Statement
Apex поддерживает применение стандартных циклов - if, while и for, применяемой для пошаговой работы с данными при выполнении заданных условий. Синтаксис команд аналогичен Java.
В сочетании с SOQL запросами циклы можно использовать для работы с данными из базы.
Заключение
Apex - язык с узконаправленным применением, предназначенный для написания кода внутри платформы CRM SalesForce. По своей сути Апекс - это доработанный для нужд конкретного продукта язык Java. С его помощью можно расширить стандартный функционал программы и настроить нужные бизнес-процессы.
Одна из основных особенностей Apex - обращение к информации в БД напрямую из кода через DML запросы.
SalesForce и Apex в основном применяются в западных странах, но число пользователей в России в последние годы постепенно растет и не теряет перспективности.