Оглавление
Время чтения: 10 минут
Apex язык программирования
Apex - объектно-ориентированный, строго типизированный язык программирования с Java-подобным синтаксисом. Разработан компанией SalesForce, являющейся поставщиком одной из самых популярных CRM систем в мире. Apex применяется исключительно для создания приложений на специальной платформе под названием Force.
Технологии SalesForce больше распространены на западе. В России они встречаются нечасто, но все же имеют свою долю рынка.
Особенности языка
Назовем несколько основополагающих черт Апекса.
-
Сильная типизация.
Переменным и объектам всегда строго присваивается определенный тип - числовой, строчный или любой другой из существующих. Ссылки на объекты с неподходящим типом данных приводят к сбою программы. -
Интегрируемость.
Язык поддерживает DML-запросы INSERT, SELECT, UPDATE и DELETE для манипулирования SQL базами данных. Команды DML напрямую встраиваются в Apex код. -
Автоматическое обновление.
Платформа самостоятельно обновляется при каждом новом релизе от SalesForce. Программисту не приходится следить за этим. -
Простота тестирования.
В Апекс есть встроенные инструменты для проведения модульных тестов. Результаты тестирования показывают подробную информацию об эффективности кода. -
Собственная среда разработки.
IDE Developer Console предоставляет необходимые инструменты для разработки прямо в браузере. Код, написанный в среде, можно применить в реальном приложении или в “песочнице”. При желании писать код можно и в Visual Studio Code, что привычнее для некоторых программистов.
Преимущества и недостатки Apex
К плюсам Апекса относят следующие моменты.
-
Синтаксис, схожий с Java.
Разработчик, освоивший Java или другой С-подобный язык, без особого труда научится писать код на Apex. Особенно здесь схожи принципы работы со строковыми переменными, коллекциями и примитивами. -
Подробная документация от разработчика.
Гайды по использованию языка бесплатно и в полном объеме представлены на официальном сайте SalesForce. Там можно найти ответы на все интересующие вопросы по платформе. -
Быстрый доступ к базе данных.
В Apex реализован out-of-the-box доступ к БД CRM от SalesForce. Это значит, что обратиться к значениям таблиц можно прямо в инициализированных функциях или любом другом месте кода без подключения дополнительных модулей и сторонних инструментов. -
Наличие собственной платформы для обучения Trailhead.
Разработчик предоставляет собственную среду для ознакомления с продуктом. В ней есть элементы геймификации, открытые тестовые среды и песочницы. Правда, обучающие модули представлены только на английском.
Есть у платформы и неоспоримые минусы.
-
Ограниченность применения.
Apex - узконаправленный язык. Он используется исключительно в рамках платформы Force и CRM SalesForce. Хоть платформа и популярна в западных странах и возможности для разработки и модификации достаточно широки, применить Apex вне среды не получится. -
Небольшое русскоязычное сообщество, недостаток документации на русском языке.
В России и СНГ SalesForce не так распространена, как на западе. Поэтому для чтения технической документации разработчику понадобится знание английского языка. Локализации пока нет даже для обучающей платформы Trailhead и официального гайда Apex Development Guide. -
Лимитированность ресурсов.
За многие”фишки” да и просто повышение производительности платформы приходится доплачивать, так как Force - чисто коммерческая система. Продвинутые тарифы стоят достаточно дорого для небольшого бизнеса.
Сферы применения
Внутри собственной платформы Apex используется для следующих целей:
- доработка системы под нужды клиентов;
- создание и настройка почтовых серверов для рассылки электронных писем;
- интеграция CRM SalesForce со сторонним ПО;
- разработка бизнес-процессов, не предусмотренных базовым функционалом;
- изменение объектов, записей и зависимых объектов при срабатывании триггеров;
- создание собственных транзакционных логик, действующих по всей транзакции, а не с отдельными объектами или записями.
По сути, Apex делает систему SalesForce гибкой и подстраивающейся под нужды клиентов. На этом языке удобно обращаться к внутренней SOQL базе данных и настраивать нужные бизнес-процессы. Разработчик на Apex является fullstack-специалистом, отвечающим за серверную и внешнюю (клиентскую) часть приложения.
Перспективы платформы
Компаниям, работающим с зарубежными рынками, стоит обратить внимание на SalesForce и Apex. Разработка и поддержка CRM на этой платформе уже более 10 лет не теряет там актуальности. На СНГ рынке еще не поздно стать одним из популяризаторов сервиса. Он дает широкие перспективы для предоставления по-настоящему гибкого подхода к управлению компанией и клиентскими отношениями.
Основные аспекты программирования
Типы данных и переменные
Apex поддерживает те же типы данных, что и Java - Integer, String, Boolean, Long и другие. Также в языке есть стандартные объекты и классы. При этом в Апексе присутствует особый тип - SObject. Он представляет собой подобие SQL таблицы и содержит аналогичные столбцам такой таблицы поля. В системе существуют стандартные SObjects - например, Account, а также кастомные, создаваемые пользователями.
Переменные в коде объявляются следующим образом:
- String - strName = 'My String';
- Integer - smplInteger = 1;
- Boolean - smplBoolean = true;
- Account - objAccount = new Account().
Переменные в Apex нечувствительны к регистру, поэтому программисту особенно внимательно приходится следить за их синтаксисом.
SOQL Query
Это запросы, с помощью которых программист обращается к внутренней базе данных SFDC. Команды SOQL схожи со стандартным языком SQL, при этом они встраиваются непосредственно в основное тело программы.
Например, поиск счетов, созданных за сегодняшний день, будет выглядеть следующим образом.
SELECT Id, Name, APEX_Customer__r.Name, APEX_Status__c FROM APEX_Invoice__c
WHERE createdDate = today
SOQL может извлекать данные только из одного объекта БД за раз.
DML заявления
Через DML запросы редактируются записи в базе данных - регистрируются клиенты, генерируются счета-фактуры, обновляется и удаляется при необходимости другая информация.
Основные команды основываются на базовом английском:
- Insert - вставка объекта;
- Update - обновление информации;
- Delete - удаление объекта.
Удаленные записи поддаются восстановлению, так как изначально не стираются полностью, а отправляются в корзину.
Loop Statement
Циклы If, For и While используются для повторения определенного действия в коде нужное число раз. Синтаксис команд аналогичен синтаксису циклов в Java.
Стандартные циклы можно сочетать с SOQL запросами, чтобы выполнять работу над объектами.
Заключение
Apex - проприетарный язык программирования для системы SalesForce. На нем дорабатывается стандартный функционал CRM, прописываются транзакции и ведется работа с базой данных SFDC. В основе Апекс лежит объектно-ориентированный язык Java, доработанный под нужды платформы SF.
Среди основных преимуществ Апекса - легкий доступ к БД, понятный синтаксис и наличие обучающих материалов.
Хоть CRM SalesForce и не столь популярна в России, разработка на Apex достаточно востребована за рубежом и имеет широкие перспективы.
В студии AppFox можно подать заявку на программирование, создание игр или заказать разработку приложений https://appfox.ru и получить бесплатную консультацию по ценам и услугам.