«Язык как будто в подвале со скуки изобрели». Программисты обсудили плюсы и минусы Salesforce

23 июня 2018, 09:06

Количество вакансий для Salesforce-разработчиков в Беларуси постепенно растёт. Не менее десятка минских компаний создают веб-продукты на платформе Salesforce, а разработчики проводят тематические митапы. dev.by побывал на одной из таких встреч, где обсуждали, почему Salesforce, защищая платформу от дураков, добавляет работы умным людям.

Читать далее

Apex: нужно ли было создавать новый язык программирования? 

Бэкенд-разработчик Алексей Шруб начал с критики: по его мнению, в основе Salesforce лежат некачественные технологии. Основная его претензия относится к Java-подобному языку Apex, который используется пользователями системы для разработки.  

— Зачем понадобилось изобретать новый язык программирования? — негодовал разработчик. — Почему создатели платформы не взяли один из существующих языков, например, Java, Python, Haskell? Было бы читабельно, высокоуровнево, да ещё и модно. На мой взгляд, создание нового языка должно быть обоснованным. Ключевой вопрос: какую пользу он принесёт? Не видел ни статей, ни выступлений на конференциях, которые бы давали ответ на этот вопрос. В целом выглядит так, будто хакеры в подвале от скуки что-то изобрели.

Сергей Кочановский

Apex нельзя рассматривать абстрагированно от платформы, считает менеджер группы разработки iTechArt Дмитрий Черник.

— Если мы рассматриваем Apex в отрыве от платформы и сравниваем его, например, с Python, то, конечно, доводов в пользу первого у меня нет, — аргументирует свою позицию Дмитрий. — Apex — это скорее инструмент для решения определённых задач, а не обособленный язык программирования. Можно ли было вместо него взять, например, Java? Сложно ответить, мы не знаем, сколько бы стоило создателям Salesforce интегрировать Java или Python в платформу. Поэтому в разрезе платформы Apex — однозначно хороший инструмент.

Изменения в архитектуре — баг или фича?

Бэкенд-разработчика Алексея смущает тот факт, что недавно в Salesforce-платформе кардинально изменилась архитектура. Речь идёт о выводе нового интерфейса под названием Lightning. Для пользователя это просто внешний вид системы, однако под капотом — js-фреймворк, кардинально отличающийся от предыдущей версии системы. Это значит, что изначально CRM была сделана на коленке, считает Алексей.

— Складывается впечатление, что в компании Salesforce даже не было архитектора, который должен был продумать, каким путём развивать продукт. Если разработчики вынуждены вносить кардинальные изменения, значит, они плохо подумали изначально, — высказывает свои предположения бэкенд-разработчик.

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

— Компания три раза в год выпускает обновление для платформы, дополняя инструментарий разработчика. На смену старому Visualforce вышел современный, привлекательный Lightning, который позволяет создавать крутые приложения. Платформа Salesforce изначально подразумевала под собой MVC модель, а теперь происходит переход на MVVC. Этот факт говорит о том, что без технического архитектора здесь не обошлось.  

Да, технологии недолговечны, соглашается Алексей и приводит в пример COBOL — так и Salesforce однажды уйдёт с рынка. Хотя до этого «кто-то успеет купить машину или дом».

Лимиты в Salesforce — плюс или минус?

На замечание о том, что в Salesforce много лимитов (на общение с внешними системами, работу с базой данных и пр.), технический директор Twistellar Сергей Кочановский отвечает так:

— Как платформа, Salesforce обязана обеспечивать стабильность системы. Поэтому компания старается её обеспечить даже на «низком уровне». Чтобы разработчики не имели шанса построить архитектуру, которая свалит систему.

По мнению Сергея, эти лимиты ,— скорее плюс. Они учат хорошему стилю программирования. Если какая-то компания решит, что ей мало предоставленных ресурсов, то она всегда может их докупить. Например, можно увеличить хранилище данных, суточный объём внешних API-запросов и пр.  

Директор Twistellar Дмитрий Лейчик.

Бэкенд-разработчик Алексей с этим не согласен: защищая стабильность системы от дураков, Salesforce добавляет работы умным людям.

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

Совсем другое отношение к лимитам у разработчика из iTechArt. Он предлагает рассмотреть несколько конкретных кейсов с лимитами.

— Давайте для примера возьмём лимит с количеством API Calls (максимум — 15 тысяч). Моё мнение: если за сутки две системы используют больше 15 тысяч взаимодействий, значит, они плохо спроектированы. Salesforce это видит и присылает нотификации с просьбой пересмотреть систему: что-то у вас не в порядке, раз вы столько запросов делаете извне.

То же самое с лимитом выборки из базы данных. Мне сложно представить интерфейс, которым удобно пользоваться, если у него больше 10 тысяч записей (я бы вообще разрешал не больше 100 записей). Если вам не хватает записей, возможно, у вас проблема с требованиями, либо вы используете не ту систему.

Интеграция с фреймворками 

Salesforce позволяет делать великолепные интеграции и добавлять в платформу различные фреймворки, уверяет специалист из Twistellar. Если предоставляемые built-in технологии не устраивают, можно взять React, AngularJS и пр. — они встраиваются в Salesforce.  

— Взаимодействие с бэкендом в Salesforce очень простое. Благодаря этому можно быстро и качественно создавать как нативные, так и гибридные мобильные приложения, которые легко интегрировать с платформой и third-party apps. Существует возможность использовать разнообразный встроенный API, есть документация по работе с базой данных, по использованию существующих сервисов в платформе.

Также можно создавать свой собственный API и настраивать любые интеграции. Для работы с Big Data, AI (вы же не будете использовать сейлсфорсовский Oracle DB для таких приложений) можно построить связующее программное обеспечение, сделать сервер на Python и соединить его с Salesforce.

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

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

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

Алексей с этими аргументами не соглашается:

— У меня есть сомнения в том, что Salesforce делает это лучше остальных платофрм.

Низкий порог входа для разработчиков?  

Специалист из Twistellar подчёркивает низкий порог входа в Salesforce-разработку: чтобы начать работать с Aрex, достаточно понимания основ программирования.

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

Дмитрий возражает:

— Некоторые думают, что в Salesforce низкий порог входа: почитал про синтаксис Apex — и можно пилить сайты. С таким же успехом можно говорить о любом другом языке программирования. Другое дело, что Java уже обросла множеством фреймворков, а Salesforce только идёт к этому. С выходом Lightning Salesforce-разработку уже можно приравнять к JavaScript. Если вы считаете, что на JavaScript низкий порог входа, значит, и на Salesforce тоже.   

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

— Я не понимаю, как платформа может не давать человеку читать книги, пробовать новые инструменты и технологии. Другое дело, если разработчик сам не хочет развиваться и пишет приложения, используя Visualforce. Хотя правильней было бы делать это, например, на AngularJS.

Дмитрий Черник

Для Алексея программирование на Salesforce равнозначно разработке на 1C.

— Это ниша, в которой разработчик находится ближе к бизнесу и автоматизации, чем к программированию. Соответственно, специалисты имеют разную квалификацию. И прежде, чем выбирать технологию, человек должен задуматься, кем он хочет быть: продажником или программистом, — категорично заявил бэкенд-разработчик.

Если человеку интересно решать, например, алгоритмические задачи, связанные с математикой, статистикой и т.д., то Salesforce не для него.

— Salesforce — это про бизнес, — дополнил Дмитрий из iTechArt. — Связь с бизнесом здесь гораздо более тесная, чем в других технологиях. Нужно глубокое погружение в предметную область. Мне, например, это нравится.

Платформа для стартапов, про которые, правда, не напишет TechCrunch

По количеству доступных современных технологий в платформе Salesforce обгоняет всех на рынке B2B, уверен директор Twistellar Дмитрий Лейчик. Например, CRM открыта к таким современным технологиям, как IoT, AI.

— Если разработчик хочет прикоснуться к этим технологиям, у него есть два выхода: разрабатывать радикально новые вещи в неструктурированной среде доступных языков программирования, либо сделать небольшой работающий проект в достаточно очерченной нише — Salesforce. Возможно, о нём не напишут на TechCrunch, он растворится в недрах какой-то корпорации, но зато это будет реально работающее и имеющее ценность решение.

Поддерживает его руководитель из iTechArt: «В плане rocket science на Salesforce сделать что-то сложно. Но вполне возможно решать те специфические задачи, которые требуются бизнесу».

Salesforce постепенно превращается в ERP, считает Алексей Шруба. По его мнению, спрос на Salesforce-разработчиков в 4 раза ниже, чем на Java. Правда, за последнее время вакансий стало больше.

Дмитрий Черник считает, что в 21 веке не обязательно искать компанию в Минске. В Штатах спрос большой, он растёт, как и сам рынок — можно работать удалённо.

При этом получают Salesforce-разработчики не меньше, чем разработчики, специализирующиеся на конкретных языках.

Итоги дискуссии: плюсы 

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

И минусы

  • язык разработки Apex в отрыве от платформы не жизнеспособен;
  • как любой продукт, при внедрении с нуля требует доработки;
  • закрытая инфраструктура, жёсткая привязка к платформе;
  • вендор настоятельно рекомендует направления развития как в техническом, так и в продуктовом плане;
  • наличие лимитов, которые требуют подстраиваться под ограничения;
  • бизнес-фокус, требующий приобретать базовые знания о бизнесе;
  • «кровавый энтерпрайз», большинство проектов носят “приземлённую” практическую направленность.

 

Фото: dev.by

Обсуждение