Expert.PRO — рубрика, в которой эксперт в своей профессиональной области делится мнением и советами. Сегодня о преимуществах и недостатках в работе с платформой Salesforce рассказывает Максим Сорокин, который 3 года работал на Salesforce.
Многие программисты находятся в поисках идеального инструмента, который позволит нырнуть с головой в программирование. Часто встречаются не самые сладкие процессы в работе, например, настроить сервера и базы данных или перенести данные из среды разработки на рабочий сервер. На практике не всегда выходит так, что в команде есть DevOps, так что приходится настраивать и обслуживать окружение самостоятельно, что отражается на времени, затраченном на разработку продукта.
Решением являются облачные системы, в которых окружение для рабочей среды уже настроено. Одна из таких платформ — Salesforce. Это CRM- система, которая предоставляется клиенту по модели SaaS. Кроме клиентской базы компания Salesforce предлагает программную платформу Force.com для самостоятельной разработки приложений и облачную систему управления базами данных Database.com. Тем самым разработчик может «допиливать» нужные фичи под потребности заказчика. Salesforce предлагает Apex — свой язык программирования, аналогом которого является Java. Для построения динамических страниц используется язык разметки Visualforce.
Работаешь в браузере через специальный API: сервера, базы данных и код находятся в облаке. Новый функционал обновляется три раза в год. Следить за обновлениями можно с помощью Salesforce Release Notes. Существует также форум для обучения и обмена опытом. Платформа развивается динамично, так что разработчику нужно постоянно изучать новые возможности. Salesforce обеспечивает документацией, поэтому к этой технологии могут перейти не только опытные программисты, но и новички.
В разные годы компания Salesforce поглотила 9 проектов, связанных с искусственным интеллектом, облачную PaaS-платформа, поддерживающую Ruby, Node.js, Java, Python, и другие компании-разработчики ПО. По разным оценкам облачный сервис-провайдер занимает лидирующее положение на рынке CRM-систем наряду с Oracle, Amazon.com, Google, Microsoft.
Мы узнали у Максима Сорокина, какие есть преимущества и недостатки в работе с Salesforce (SF), чего не хватает, и стоит ли разработчикам присмотреться к данной технологии.
«Плюсы технологии:
- встроенные дата объекты для всей схемы;
- простой интерфейс доступа к данным;
- проблемы многопоточности решаются на уровне самой платформы и разработчику не нужно о ней думать.
Минусы технологии:
- слишком много модулей, которые жестко связаны с исполняемым контекстом. Например, объект доступа к базе статично встроен в любой исполняемый контекст и не может быть подменен во время выполнения теста;
- слишком жесткие лимиты. Нет команды commit, из-за чего нельзя делать HTTP запросы между транзакциями в базе в силу архитектуры самого SF;
- слишком мало контроля: отсутствует контроль за последовательностью выполнения многопоточных задач, за глобальными переменными контекста, исключены рефлексии или подобные механизмы;
- отсутствие расширяемости: все модули предоставляются SF, и нет удобной возможности подключать сторонние библиотеки (нужно использовать костыльные методы для этого);
- ориентированность на декларативное программирование. SF дает мало инструментов для использования программного кода (отсутствуют пакетные структуры, namespace-ы) и стимулирует разработчиков использовать декларативное программирование (point-and-click programming), которое плохо расширяемое, его невозможно автоматизировать и дебажить;
- неудобные ресурсы с документацией;
- мало хороших программистов в сообществе вокруг платформы;
Основные причины выбора технологии — это маленькая конкуренция на рынке вакансий и высокий уровень зарплат».