JavaScript – это обоюдоострый меч, состоящий из магии браузера и обильных головоломок, пытающихся заставить ваш код работать. Как человеку, который разрабатывал с помощью JavaScript почти 17 лет, мне посчастливилось знать, как использовать его, чтобы делать удивительные вещи на платформе Force.com. Visualforce никуда не денется, но JavaScriptвезде. Отвечая на вопрос Что нужно знать разработчику Visualforce о Javascript? Я предлагаю 5 советов о том, как разработчики Visualforce могут вывести свои навыки JavaScript на новый уровень.

Совет 1: (Пере)изучите JavaScript!

Я знаю, что вы знаете JavaScript, но когда вы в последний раз брали в руки книгу или читали отличную статью о важности хорошо написанного структурированного кода? Учитывая повсеместное распространение JavaScript и Интернета, вам доступно множество ресурсов, 99,9% из которых бесплатны. Моими личными фаворитами являются Eloquent JavaScript и JavaScript Allongé. Я читаю оба этих замечательных ресурса (среди прочего) не реже одного раза в год.

В частности, обратите внимание на замыкания (то, что JavaScript Allongé хорошо охватывает) и самоисполняемые функции, асинхронный код, такой как Ajax, обещания и пространства имен (включая глобальное загрязнение пространства имен). Эти расширенные темы переведут вас из человека, который знает JavaScript в человека, который является ниндзя JavaScript.

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

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

Совет 2. Развивайтесь и учитесь, обогащая свой опыт работы с VisualForce

Начните с малого и не пытайтесь бежать, пока не научитесь ходить. Страницы Visualforce с небольшим количеством JavaScript выигрывают от постепенного улучшения с помощью мощностей JavaScript. Не пытайтесь перенести Visualforce на Lightning одним махом (это не только потребует времени, но и не принесет ничего, кроме функциональности, предоставляемой вашими страницами Visualforce в ближайшей перспективе).

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

Я закончу этот раздел на том же — начнем с малого. Тот могучий дуб, на который вы взобрались в детстве, начал жизнь как один-единственный желудь.

Совет 3: Разделяйте свои опасения

JavaScript — отличный инструмент в вашем арсенале технологического волшебства, но на протяжении многих лет его использовали, злоупотребляли и принуждали. Тройка HTML, CSS и JavaScript предназначена для выполнения одной фундаментальной работы:

  • HTML для контента
  • CSS для презентации
  • JavaScript предназначен для интерактивности, как для пользователя, так и «за кулисами», например для частичного обновления страницы.

Не добавляйте синтаксис слияния Visualforce в свой JavaScript. Вы бы «мутили воду» между тем, для чего хороши Visualforce и JavaScript.

Поддержание вашего JavaScript в чистоте поможет вам только в долгосрочной перспективе. Если вы решите последовать совету 2 и создать JavaScript на своих страницах Visualforce в виде библиотеки компонентов, соблюдение чистоты избавит вас от головоломок, расцепления и переписывания JavaScript через месяцы.

Совет 4: Узнайте, как тестировать JavaScript

Поскольку JavaScript может быть выполнен практически в любом веб-браузере и написан в любом текстовом редакторе или редакторе кода, тестирование JavaScript часто прибегает к:

  • Написать/отредактировать немного JavaScript
  • Проверьте, делает ли он то, к чему вы стремились, в браузере.
  • Если работает, то все хорошо
  • Если это не так, повторите этот процесс

Изучение того, как писать модульные тесты для вашего JavaScript, может добавить дополнительную степень уверенности в том, что все будет выполняться так, как вы всегда планировали, даже когда вы вносите изменения в другую часть своей кодовой базы. Точно так же, как вы тестируете свои классы и триггеры Apex, можно тестировать и JavaScript. Мой любимый бегун тестов для JavaScript — Karma. Он позволяет вам писать тесты JavaScript — на JavaScript — используя методы описания вашего кода Jasmine, Mocha или QUnit. Karma может выполняться в командной строке, поэтому ее можно легко внедрить как часть конвейера разработки. В настоящее время для Lightning Component JavaScript не нужно писать тесты. Я лично вижу, что это изменится в будущем. Кроме того, это чертовски хорошая практика — тестировать свой код повторяющимся образом.

Совет 5: Держите ваш JavaScript аккуратным

Мы все стремимся писать краткий, хорошо прокомментированный код. С появлением фреймворков JavaScript, таких как AngularJS и React, возникла потенциальная проблема раздувания кода. При написании кода JavaScript постарайтесь найти волшебный баланс между кратким кодом и удобочитаемостью. Вы никогда не знаете, когда вам придется повторно посетить то, что вы создали, поэтому подумайте заранее и напишите свой код, зная, что кто-то будет его читать и ему нужно будет понять, что происходит.

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

Дополнительный совет 6: JavaScript становится все более доминирующим как внутри, так и за пределами платформы Force.com.

Когда ваши навыки JavaScript достигнут уровня, на котором вы чувствуете себя комфортно, вы можете использовать свои навыки в другом месте, чтобы дополнить разработку своей платформы Force.com. Собственный Heroku от Salesforce поддерживает NodeJS (среди прочего), поэтому вы можете создавать исполняемые на сервере пакеты JavaScript для более сложных и индивидуальных задач. Вы можете опубликовать их в репозитории, таком как NPM, если хотите, и вернуть их сообществу Open-Source для загрузки.

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