{"id":14276,"url":"\/distributions\/14276\/click?bit=1&hash=721b78297d313f451e61a17537482715c74771bae8c8ce438ed30c5ac3bb4196","title":"\u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u0442\u043e\u0432\u0430\u0440 \u0438\u043b\u0438 \u0443\u0441\u043b\u0443\u0433\u0443 \u0431\u0435\u0437 \u0431\u0438\u0440\u0436\u0438","buttonText":"","imageUuid":""}

Обзор Salesforce CRM. Часть 2

Автор статьи: Иван Левицкий, Salesforce разработчик, DataArt

Привет! Напомню, что зовут меня Иван Левицкий, и уже четыре года я занимаюсь Salesforce-разработкой. Во второй части моей статьи речь пойдет о фронтенде, процессе, средствах и средах разработки. Наконец, о том, кому все-таки, на мой взгляд, стоит повнимательнее присмотреться к Salesforce с карьерной точки зрения. Лишний раз оговорюсь: не уверен, что он подойдет всем. Заодно напомню, что в первой части статьи я рассказывал о базах данных и языке Apex, готовых решениях и функциональных возможностях Salesforce.

Думаю, продолжение статьи будет полезно прочитать и тем, кто уже работает с Salesforce. Ближе к концу я разместил подборки полезных ссылок, расширений, онлайн-сервисов и литературы. Все они составлены лично мной и проверены собственным опытом.

Фронтенд

Очень много запросов, поступающих от клиентов, касаются создания, перемещения и переименования полей. В Salesforce все это можно сделать без программирования.

Как упоминалось ранее, в Salesforce есть две версии пользовательского интерфейса: старая Classic и новая Lightning, на которую уже перешло подавляющее большинство клиентов.

На первом скриншоте Lightning, на втором — Classic-версия UI

Одним из первых инструментов для создания собственного UI был SControl — в основном это были HTML Web Forms. Сейчас возможности использовать SControl нет, но Salesforce продолжает поддерживать то, что создано с его помощью ранее. Их часто можно встретить в сторонних пакетах, разработка которых началась много лет назад.

Особенностью Classic-версии были JavaScript Buttons, которые с помощью JavaScript API могли выполнять простейшие манипуляции или вызвать Apex-код. Аналогом JavaScript кнопок в Lightning версии стали Lightning Quick actions.

В обеих версиях UI все элементы группируются во вкладки (tabs), которые в свою очередь группируются в App. В Lightning-версии все Apps группируются в App Launcher. Как правило, для одного объекта существует одна вкладка. Вкладкой может быть отдельная компонента, App-страница, Record-страница или встроенный через iFrame посторонний веб-ресурс.

На данный момент собственный UI можно создать с помощью следующих технологий:

  • Visualforce (VF) — старейшая из доступных. Страница или компонента генерируется на стороне сервера, однако Apex-код и разметка страницы пишутся отдельно. Предусмотрен функционал для оптимизации работы страницы. Некоторые элементы Visualforce до сих пор тяжело заменить: например, продвинутый email template, генерацию PDF-файлов, разработку собственной страницы SObject List.

  • Aura Framework (или просто Aura) — возникшая одновременно с новым графическим интерфейсом Lightning. В отличие от Visualforce, страница здесь генерируется на стороне клиента, т. е. в браузере пользователя. Позволяет передавать переменную между родительскими и встроенными компонентами по значению и по ссылке. Связь в этом случае двусторонняя. Для более сложных случаев используют component и application events. Последний — по сути реализация publish-subscribe механизма.

Есть возможность вызывать и подписываться на некоторые системные события. Также можно через EMP API подписаться на Platform Events. Существует множество обработчиков для инициализации и различных этапов рендеринга компоненты.

Большой плюс — динамическое создание компонент и ограниченная поддержка объектно-ориентированного программирования (кастомные компоненты можно расширять или имплементировать — например, некоторые стандартные интерфейсы).

Каждая Aura-компонента (Aura bundle) может состоять из следующих частей: component (HTML-разметка страницы), controller (JS-контроллер, откуда функции можно привязать к событиями на стороне разметки), helper (здесь находится основная часть JS-кода), style (CSS), documentation (документация к компоненте), renderer (для переопределения процесса рендеринга), design (здесь можно задавать атрибуты с графического конструктора) и svg (svg-иконка компоненты). Однако для ее создания обязателен только component.

При необходимости сформировать некую библиотеку JavaScript-функций можно создать component с пустым тегом или отдельный JS-файл. Последний загружается в Static Resources, после чего вы сможете подключать его к своей компоненте.

  • LWC (Lightning Web Components) — самая новая из доступных технологий, в некоторых аспектах не такая гибкая, как Aura Framework (binding, динамическое создание компонент и т. д.). Однако эти недостатки компенсируются стандартами и возможностями Web Components: после их стандартизации Salesforce и запустил LWC. Здесь для одной компоненты может вообще не существовать HTML-разметки, или же их, напротив, может быть сразу несколько. Среди всех перечисленных технологий LWC наиболее шустрая.

Для создания быстрого и стандартизированного с LEX (Lightning EXperience, Lightning UI-версия) интерфейса существует библиотека стилей, похожая на Bootstrap — SLDS (Salesforce Lightning Design System). Для Aura-компонент или LWC она подключается автоматически. Для Aura Apps и Visualforce SLDS подключить ее нужно самостоятельно. Подробнее о SLDS можно прочитать здесь.

Мало того, что весь JavaScript-код, написанный для Aura и LWC, автоматически выполняется в режиме use strict, Salesforce ввел еще и Locker Service. Это решение безопасности для фронтенда: например, данные с сервера передаются в виде Proxy-объектов, а часть JavaScript-функций и HTML-разметки остаются недоступны. Это повышает уровень безопасности, но очень затрудняет разработку кастомного пользовательского интерфейса. Подробнее о Locker Service — здесь.

Другие технологии, достойные упоминания: Lightning Out, которая, например, позволяет встраивать Aura-компоненты в Visualforce или на сторонние сайты, и Lightning Message Service, предоставляющая возможность обмена данными между Aura, LWC и VF-компонентами. Также имеется встроенный функционал для обеспечения безопасности: CSP (Content Security Policy) и CORS (Cross-Origin Resource Sharing).

Наконец, для Aura и LWC можно писать юнит-тесты.

Каждая технология имеет ряд стандартных компонент, некоторые из которых можно расширять. Для Aura и LWC существует библиотека Lightning Component Library, для Visualforce — Visualforce component library.

Встроенные средства декларативного программирования

Очень многое в Salesforce можно сделать вручную через графический интерфейс. Например: создать объект, поля и валидации на объекте или разметку страницы для него. Кроме того, Salesforce содержит ряд встроенных инструментов декларативного программирования.

На некоторых проектах (преимущественно небольших из числа тех, где клиент имеет своего администратора) использовать декларативные средства программирования просят чрезвычайно настойчиво — практически требуют. Клиентов понять можно: подключать специалиста со стороны — удовольствие для малого бизнеса недешевое. Поэтому они хотят иметь решения, которые можно легко изменить без помощи разработчика.

Конечно, когда пишешь код, можно вынести некоторые переменные наружу и подробно задокументировать процесс. Но многие заказчики все равно ценят именно декларативные решения. Почему? Во-первых, на рынке относительно легко найти сертифицированного администратора, который за очень короткое время внесет необходимые изменения, не разбираясь в кастомных настройках. Во-вторых, декларативное программирование ускоряет разработку, в частности, отпадает необходимость писать юнит-тесты.

Однако в крупных проектах от декларативных инструментов чаще всего отказываются из-за Order of Execution, возможной рекурсии и опасности выхода за Governor Limits.

Хотя к декларативным инструментам в Salesforce можно отнести многие, обычно под этим термином понимают один из следующих: Workflow Rules, Process Builder, Flows (Visual Flow) и Approvals.

  • Workflow Rules — самый старый из этого списка. Привязывается к определенному объекту. Может выполнять следующие действия: создавать задания (Task), отправлять Email Alert, отправлять Outbound Message для внешнего веб-ресурса, обновлять запись, на которой сработал триггер, и некоторые поля master записи при наличии связи master-detail. Workflow может быть запущен при создании записи привязанного объекта, в первый раз или каждый раз, когда выполняется определенное условие. Позволяет создать time-based Workflow.
  • Process Builder предоставляет поддержку различных версий одного процесса и возможность активировать, деактивировать или удалить его. Позволяет выстраивать логику, которая содержит много конструкций вида if-else. Может редактировать не только запись, которая инициировала процесс, но и все связанные записи. Обеспечивает возможность создавать записи в системе (не только Task), обновлять связанные записи, запускать quick action, публиковать сообщения в Chatter, запускать Flow, вызывать Invocable Apex-методы, подавать запись на Approval, вызвать другой процесс.
  • Flows (Visual Flow), как правило, не привязываются к объектам. Способны заменить собой написание кода для простых задач и некоторых задач средней сложности. Здесь каждый Flow можно использовать как subFlow в другом Flow. Есть несколько видов:

    Screen Flows — для создания пользовательского интерфейса.

    Schedule-Triggered Flows — Flows, запланированные на определенное время.

    Autolaunched Flows — потоки, которые могут быть вызваны с Process Builder или Apex, при изменении записей или быть подписанными на Platform Events.

    Record-Triggered Flows — этот тип Flows запускаются в фоновом режиме, когда запись определенного объекта создается, редактируется или удаляется.

    Platform Event-Triggered Flows — подписаны на Platform Events и запускаются каждый раз, получив Platform Event-сообщение.

  • Approval — позволяет автоматизировать процесс согласования.

Развертывание, CI/CD и DevOps

В октябре 2017 года для общего доступа был открыт CLI от Salesforce — SFDX CLI (Salesforce Developer Experience Command Line). Сам CLI написан на Node.js, поэтому легко может быть интегрирован в CI/CD-процесс даже на стороне VCS (Version Control System), будь то GitHub или GitLab. Еще одна важная особенность SFDX — возможность очень быстро создавать Scratch Orgs, удалять их и деплоить на них метаданные. Это не только ускоряет процесс разработки, но и находит широкое применение при CI/CD.

Деплоймент в Salesforce можно проводить несколькими способами:

  • Change Sets — наборы изменений можно легко переносить между связанными «песочницами» и Production-оргой.
  • Ant — можно деплоить изменения и destructive changes через Ant.
  • IDE — метаданные деплоятся через Metadata API.
  • SFDX CLI — есть возможность деплоить метаданные, перечисленные в package.xml.
  • Workbench — есть возможность деплоить метаданные через архив, содержащий измененные метаданные и их список в package.xml.
  • Посторонние сервисы такие как GearSet, Flosum и многие другие.

Скоро общедоступным станет Salesforce DevOps Center, который будет еще одним из возможных путей развертывания изменений.

Разработка собственных пакетов

Я уже упоминал, что Salesforce предоставляет возможность разработки собственных пакетов, способных расширить существующий функционал. Распространять их можно бесплатно или по подписке, по ссылке или через официальный магазин приложений AppExchange. Чтобы выпустить свой пакет на AppExchange, необходимо быть Salesforce-партнером и пройти Security Review. Распространять компоненты можно с открытым (unmanaged package) или скрытым (managed package) кодом.

Managed package второго поколения позволяет строить комплексные решения с помощью модулярных пакетов, оптимально используя системные ресурсы.

С помощью пакетов можно расширить стандартный функционал, создать новый, сделать интеграцию с посторонним ресурсом. Возможности здесь широкие: поддержка версий, post install скрипты, setup-страницы, создание бета-версий пакетов, хранение настроек в custom settings или custom metadata type. Если клиент предоставит доступ, можно протестировать пакет на Salesforce org того, кто его установил. И это далеко не полный перечень.

Процесс разработки на Salesforce

Для разработки на платформе Salesforce чаще всего применяется методология Agile (двухнедельный спринт), реже Kanban.

Типичный процесс разработки
  • Development — разработчик работает над функционалом в своей песочнице (sandbox), или Scratch-орге. Очень редко для этого этапа используют отдельную Developer-оргу.

  • Staging (QA Testing) — изменения, сделанные разработчиком, переносятся в другой sandbox: чаще всего такую песочницу так и называют — QA или Staging. Здесь QA инженер тестирует и верифицирует сделанные изменения.

  • UAT — этап, когда один из стейкхолдеров проекта проверяет изменения. Обычно для этого используется отдельная песочница, куда частично или полностью копируют данные с Production.
  • Deployment on Production — пройдя проверку тестировщиком и клиентом, изменения попадают на Production. Напрямую код или разметку какой-то компоненты менять на Production нельзя: помните, что «раз-раз и в продакшен» в Salesforce не работает? Исключение составляют декларативные изменения.

Salesforce APIs

Salesforce позиционирует себя как API-first, но так было не всегда, поэтому часть старого функционала может не быть доступна через API.

Ниже представлен список наиболее популярных Salesforce API:

  • REST API обеспечивает мощный, удобный и простой интерфейс веб-служб на основе REST для взаимодействия с Salesforce. Его используют для интеграции с мобильными приложениями и веб-проектами.

  • SOAP API — SOAP-версия API для взаимодействия с Salesforce. Аналогичная по функционалу с REST API, она заточена на работу с real time запросами.

  • Bulk API — основанный на REST-принципах интерфейс для работы с большим набором данных.
  • Metadata API — API, используемый для получения, развертывания, создания, обновления или удаления настроек для конкретной организации.Чаще всего — для переноса изменений из песочницы или тестовой орги на Production.
  • Tooling API — своеобразный микс REST и Metadata API, который позволяет делать SOQL-запросы для метаданных, недоступных для обычного SOQL. В основном используется разработчиками IDE.

Кроме того, некоторые Salesforce Clouds, особенно те, которые изначально были независимыми компаниями, имеют собственный REST-based API. Например, Connect REST API (Chatter, CMS, Experience Cloud), Marketing Cloud API, Pardot API и т. д.

Для своих API Salesforce использует версионирование. С каждым новым релизом порядковый номер версии увеличивается на единицу. Salesforce всегда стабильно делает три релиза в течение календарного года: Spring, Summer, Winter.

Компания гарантирует минимум три года поддержки каждой API-версии.

Среды разработки (IDE)

  • VS Code + набор различных плагинов для работы с Salesforce, включая официальные. Лично я ими не пользуюсь, поэтому могу порекомендовать почитать вот эту статью. Но преимущества здесь вполне очевидные: официальные плагины, к тому же, все бесплатно.
  • IntelliJ или WebStorm + Illuminated Cloud 2: лично пользуюсь этим набором уже несколько лет и не планирую ничего менять. Преимущества — значительно функциональнее официальных и сторонних плагинов для VS Code. Недостатки тоже есть: и сама IDE, и плагин — платные.

  • Welkin Suite — достаточно популярная IDE, разработка украинской компании. Основой для среды стала устаревшая Visual Studio 2013 от Microsoft. Welkin Suite имеет ряд возможностей, аналогов которым нет в других IDE. В основном они связаны с автоматизацией администрирования. Недостатки — платная, редко обновляется, не поддерживает LWC, к тому же, интерфейс перегружен множеством кнопок.
  • Developer Console — web-based официальный инструмент от Salesforce. Доступен на всех Developer оргах и на тех Production и Sandboxes, где это предусмотрено приобретенной лицензией. Консоль доступна по адресу https://SF_INSTANCE_URL/_ui/common/apex/debug/ApexCSIPage, где SF_INSTANCE_URL — адрес вашей Salesforce org. Преимущества: подходит для незначительных изменений, создания VF и Aura-компонент и аппликаций, статических ресурсов; есть SOQL-запросы с поддержкой Tooling API; позволяет запускать Anonymous Apex и юнит-тесты, причем демонстрирует покрытие кода; помогает отладке кода и декларативного функционала, да и вообще почти всего, что происходит на стороне сервера; позволяет отлаживать и оптимизировать VF-страницы; предоставляет возможности мониторинга deployment-ов. Недостатки: не подходит для комплексных задач, подвисает при большом количестве открытых вкладок, не поддерживает работу с LWC.
  • Salesforce Code Builder — призван заменить Developer Console и быть полноценной web based IDE. Уже почти год доступен в пилотной версии. К ней можно получить доступ, но для этого надо связаться с представителем Salesforce, который прикреплен к вашему Salesforce-инстансу. Подробнее можно прочитать здесь.

Полезные расширения для Chrome, программы и онлайн-сервисы

Полезные расширения

Среди расширений для Chrome я рекомендую следующие:

1. Salesforce Inspector (100,000+ пользователей)

Очень полезное расширение, которое позволяет просматривать все поля и связи на записи, даже если они не выводятся на экран для конечного пользователя; импортировать/экспортировать данные, проверять Org Limits и входить под аккаунтами других пользователей (Login As). Большой плюс — возможность делать SOQL- запросы, включая поддержку Tooling API.

2. Salesforce Colored Favicons (20,000+ пользователей)

Маленькое, но очень полезное расширение. Поскольку все Salesforce-орги имеют одинаковые favicon, это расширение позволяет автоматически менять цвета этих favicon для различных Salesforce Instances.

3. Salesforce Lightning Inspector (50,000+ пользователей)

Официальное расширение от Salesforce, которое позволяет отлаживать Aura-компоненты. Оно получило невысокие оценки пользователей, в основном из-за проблем с производительностью. Но если вы до сих пор работаете с Aura-компонентами, это расширение будет для вас полезным: с его помощью можно понять, как устроен и функционирует Aura Framework и LEX (Lightning Experience).

4. Salesforce.com Enhanced Formula Editor (5,000+ пользователей)

Незаменимый инструмент для Salesforce-администраторов, в меньшей степени для разработчиков. Подсвечивает синтаксис при написании формул и вообще упрощает работу с ними, будь то Formula-поле или формулы в Validation Rules, Flows, Process Builders, Workflow Rules и field update formulas. К сожалению, расширение платное, но есть пробная версия на четырнадцать дней.

5. Salesforce Community Page Optimizer (5,000+ пользователей)

Еще одно официальное расширение от Salesforce. Позволяет оптимизировать страницы в Experience Cloud (ранее Community Cloud).

Очень часто встречался с использованием расширения, разработанного украинской компанией — Salesforce Logins by Synebo (20,000+ пользователей).

В нечто полезное обещает развиться Advanced Salesforce inspector, вдохновленное, как нетрудно догадаться, Salesforce Inspector. Расширение находится на ранней стадии разработки, но кто знает, возможно, через год-полтора о нем начнут писать все.

Полезные программы для работы с Salesforce

Помимо сред для разработки и SFDX CLI, есть еще ряд программ, без которых трудно представить работу с Salesforce:

1. Data Loader — его можно скачать с Setup вашего Salesforce-инстанса. Это, в частности, гарантирует, что версия вашего Data Loader будет совпадать с API version вашей Salesforce-орги. Позволяет импортировать, экспортировать, обновлять и удалять данные с вашей Salesforce-орги, проводить заливку данных через Bulk API (благодаря чему, в одном батче можно иметь до 10 000 записей). Версия для Windows имеет CLI, так что ее теоретически можно использовать на Windows-серверах; существует версия и для Mac Os. Поддерживаются почти все объекты в Salesforce, включая кастомные.

2. Postman — программа для работы с API. Не нуждается в дополнительном представлении.

3. Advanced Rest Client (ARC) — почти то же самое, что и Postman, но с меньшим объемом функционала. Тем не менее, с простыми задачами справляется на ура.

4. SoapUI — полезно для работы с SOAP API.

Полезные ссылки для работы с Salesforce

1. Dataloader.io — сайт для миграции, импорта, экспорта данных в/из Salesforce. Компания была выкуплена Salesforce, поэтому можно не переживать о безопасности данных. Среди возможностей: разумный mapping данных; коннекторы для Box.com, Dropbox, FTP и SFTP-репозиториев; возможность запланировать работу с данным. Доступна бесплатная версия с ограничениями, Professional и Enterprise-версии (для последней предусмотрен 30-дневный Trial).

2. Workbench — официальный многофункциональный web-based инструмент для работы с Salesforce, поддерживает CRUD, а также Undelete и Purge (полное удаление) операции; просмотр, retrieve и deploy метаданных; позволяет выполнять SOSL, обычные и асинхронные SOQL-запросы; запускать Anonymous Apex и работать с REST через REST Explorer; задавать и сбрасывать пароли для пользователей; и т. д.

3. JSON2apex и Adminbooster — сайты для генерации Apex-классов на основе JSON. Для XML в Salesforce есть встроенный функционал.

4. Flosum — DevOps-сервис, разработанный бывшим сотрудником Salesforce.

5. Gearset — еще один функциональный DevOps-сервис для работы с Salesforce.

6. Infostretch — умный Continuous Testing & Automation-инструмент для Salesforce.

7. JSON Viewer — инструмент для визуального представления JSON, не уникален, зато прост в использовании.

8. MuleSoft — платформа, которую часто используют для разработки интеграции с Salesforce. Изначально продукт компании, которую Salesforce поглотил.

9. Boomi — еще одна платформа для интеграции, но устаревшая и менее популярная.

Полезная литература

Salesforce имеет собственную образовательную систему Trailhead. Она геймифицирована и почти полностью покрывает весь Salesforce с теоретической и практической сторон (тесты, задачи на настройку системы, на программирование или декларативные изменения). Подойдет администраторам, разработчикам, консультантам и даже пользователям самого Salesforce.

Trailhead содержит уроки (так называемые trails, которые объединяются в Trail Mix) для специалистов разного уровня подготовки. Для получения некоторых Salesforce-сертификатов необходимо пройти решение комплексных задач, так называемых Super Badge. Особенность этих задач в том то, что в отличие от прочих типов, здесь нет четко сформулированного условия (почти как в реальном проекте) и готовых примеров решения.

Однако, несмотря на все преимущества Trailhead, для полноценного развития его все-таки недостаточно. Поэтому среди множества книг о Salesforce я выбрал несколько, на мой взгляд, наиболее важных и полезных. В первую очередь, они ориентированы на разработчиков.

Книги для разработчиков:

1. Magulan D, Getting Started with SOQL. — Birmingham : Packt, 2014. — 130 p. — ISBN 978-1-78328-735-2

Хорошая книга для ознакомления с SOQL, особенно для тех, кто ранее работал только с SQL.

2. Keir Bowden, Visualforce Development Cookbook. — Birmingham : Packt, 2013. — 334 p. — ISBN 978-1-78217-080-8

Хотя Visualforce уже устарела, разработчикам все еще приходится с ней сталкиваться. В частности, для генерации PDF-файлов и переопределения List View страниц или на старых проектах. Книга содержит 75 готовых Visualforce-решений.

3. Jitendra Zaa, Apex Design Patterns. — Birmingham : Packt, 2016. — 250 p. — ISBN 978-1-78217-365-6

Книга будет интересна тем, кто хочет освежить знания о шаблонах программирования или просто посмотреть на их Apex-реализацию.

4. Andrew Fawcett, Salesforce Lightning Platform Enterprise Architecture, Third Edition. — Birmingham : Packt, 2019. — 637 p. — ISBN 978-1-78995-671-9

Книга от Эндрю Фосетта, который в свое время был признан Salesforce MVP. Будет полезной для Salesforce Team Lead или Salesforce Architect ролей.

5. Mohith Shrivastava, Learning Salesforce Lightning Application Development. — Birmingham : Packt, 2018. — 446 p. — ISBN 978-1-78712-467-7

Книга немного устарела, но если вам до сих пор приходится работать с Aura — она для вас.

6. David Masri, Developing Data Migrations and Integrations with Salesforce. — Birmingham : Packt, 2019. — 343 p. — ISBN-13: 978-1-4842-4208-7

Книга которая меня приятно поразила: фундаментальный обзор Salesforce, примеры миграций и интеграций.

7. Andrew Davis, Mastering Salesforce DevOps. — Birmingham : Packt, 2019. — 464 p. — ISBN-13: 978-1-4842-5472-1

Название говорит само за себя.

Книги для администраторов:

1. Paul Goodey, Salesforce CRM — The Definitive Admin Handbook, Fifth Edition. — Birmingham : Packt, 2019. — 768 p. — ISBN 978-1-78961-978-2

2. Philip Weinmester, Practical Salesforce Development Without Code, Building Declarative Solutions on the Salesforce Platform, Second Edition. — Powder Springs : Apress, 2019. — 532 p. — ISBN-13: 978-1-4842-4870-6

3. Rakesh Gupta, Mastering Salesforce CRM Administration. — Birmingham : Packt, 2017 — 541 p. — ISBN: 978-1-78646-318-0

Тем, кто интересуется историей становления компании, рекомендую почитать воспоминания ее основателя:

Marc Benioff and Carlye Adler, Behind the Cloud, the untold story of how Salesforce.com went from idea to billion-dollar company and revolutionized an industry. — San Francisco : Jossey-Bass, 2009. — 307 p. — ISBN 978-0-470-52116-8

Заключение

За последние несколько лет для Salesforce-разработчиков изменилось многое. Компания выпустила собственный SFDX CLI, написанный на Node.js, который легко можно добавить в докер и использовать для CI/ CD или чего-нибудь менее глобального. Salesforce переписал плагин для IDE, да и саму IDE изменили с Eclipse на VS Code. Хотя наиболее функциональным набором для разработки остается связка IntelliJ IDE (или Webstorm) и плагина под названием Illuminated Cloud 2. Также знаковым событием для разработчиков стала поддержка Web Components, LWC (Lightning Web Components).

Кому из разработчиков может быть интересен Salesforce?

• В первую очередь, фронтенд-специалистам, которые хотят развиваться в сторону бэкенда, но не уверены, смогут ли потянуть высокоуровневый язык программирования.

• Salesforce может стать спасательным кругом для специалистов по языкам программирования, которые резко потеряли в популярности.

• Salesforce может служить хорошим стартом карьеры разработчика, хотя я лично не рекомендовал бы надолго здесь задерживаться.

• В конце концов он подойдет тем, кто просто не успевает за развитием различных фреймворков и хочет более спокойной жизни. Или тем, кому надоело, помимо роли разработчика, заменять в проекте еще и DevOps-инженера.

Тем, кто в программировании вовсе не силен, Salesforce тоже может помочь перезапустить карьеру. Они могут стать администраторами или консультантами. Платформа приспособлена для конфигураций с UI-интерфейсом и имеет много инструментов для декларативного программирования.

Весь Salesforce хорошо документирован, для разработчиков и администраторов существует Salesforce Developer Community и отдельный stack exchange. Кроме того, работает служба поддержки, которая за день-два помогает с простыми проблемами. Наиболее сложный случай общения с Salesforce Support занял у меня 2 недели.

Если вас интересует уровень зарплат в Salesforce, с ним можно ознакомиться, загрузив отчет от авторитетной компании Mason Frank International.

Я не хочу приукрашивать и рекламировать Salesforce. Так, для разработчиков здесь много того, что предлагают и другие среды программирования: проприетарный, Java-образный язык программирования для бэкенда, три разновидности компонент для фронтенда, свой CLI, поддержка VCS, множество API и т. д. Но несмотря на это, Salesforce — в первую очередь, CRM-система. Интересно ли вам работать с решениями, которые строятся вокруг нее — решать только вам.

0
5 комментариев
VitOk

Нет картинок(

Ответить
Развернуть ветку
Vlad Samusenko

Целых три вообще-то.

Ответить
Развернуть ветку
VitOk

На такую простыню штук 30 надо

Ответить
Развернуть ветку
DataArt
Автор

Простите :( Мы специально не хотели ничего рекламировать. Дело интересное, но на любителя. 

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
ВВП

Мало того, что это крайне корявая система, так еще и политизирована.

Ответить
Развернуть ветку
2 комментария
Раскрывать всегда