Что такое скриптовые файлы
Если вы разрабатывали большие проекты (к примеру, масштабные игры), замечали, что с каждой новой сотней строк кода компиляция идет медленней?
В игре создается больше оружия, больше диалогов, больше меню, больше etc.
Одна из самых главных проблем, возникающих в связи с нововведениями — поддерживать бессчетное множество оружия и бейджиков довольно сложное занятие.
В ситуации, когда просьба друга/босса/напарника изменить диалог или добавить новый вид оружия занимает слишком много времени, приходится прибегать к каким-то мерам — например, записи всей этой фигни в отдельные текстовые файлы.
Почти каждый геймдевелопер когда-нибудь делал карту уровней или диалоги в отдельном текстовом файле и потом их считывал. Взять хотя бы простейший вариант — олимпиадные задачи по информатике с файлом ввода
Но есть способ, на голову выше — использование скриптов.
Решение проблемы
«Окей, для таких дел хватает обычного файла с описанием характеристиков игрока. Но что делать, если в бурно развивающемся проекте почти каждый день приходится немножко изменять логику главного игрока, и, следовательно, много раз компилировать проект?»
Хороший вопрос. В этом случае нам на помощь приходят скрипты, держащие именно логику игрока со всеми характеристиками либо какой-либо другой части игры.
Естественно, удобнее всего держать, логику игрока в виде кода какого-нибудь языка программирования.
Первая мысль — написать свой интерпретатор своего скриптового языка, выкидывается из мозга через несколько секунд. Логика игрока определенно не стоит таких жутких затрат.
К счастью, есть специальные библиотеки скриптовых языков для С++, которые принимают на вход текстовый файл и выполняют его.
Об одном таком скриптовом языке Lua пойдет речь.
Как это работает?
Прежде чем начать, важно понимать, как работает скриптовый язык. Дело в том, что в скриптовых языках есть очень мало функций, при наличии конструкций for, while, if, прочих.
В основном это функции вывода текста в консоль, математические функции и функции для работы с файлами.
Как же тогда можно управлять игроком через скрипты?
Мы в С++-программе делаем какие-либо функции, «регистрируем» их под каким-нибудь именем в скрипте и вызываем в скрипте. То есть если мы зарегистрировали функцию SetPos(x,y) для определения позиции игрока в С++-программе, то, встретив эту функцию в скрипте, «интерпретатор» из библиотеки скриптового языка вызывает эту функцию в С++-программе, естественно, с передачей всех методов.
Удивительно, да? :)
И еще вместо lua_CFunction проскакивает lua_cfunction
Спасибо!
Я готов!
Когда вы поняли преимущества скриптовых языков программирования, самое время начать работать!
Скачайте из репозитория на гитхабе (низ топика) lib'у и includ'ы Lua, либо возмите их на официальном сайте.
Создаем консольный проект либо Win32 (это неважно) в Visual Studio (у меня стоит версия 2012)
Заходим в Проект->Свойства->Свойства конфигурации->Каталоги VC++ и в «каталоги включения» и «каталоги библиотек» добавьте папку Include и Lib из репозитория соответственно.
Теперь создаем файл main.cpp, пишем в нем:
Как вы догадались, у меня консольное приложение.
Теперь переходим к кодингу
Обещаю, что буду тщательно объяснять каждый момент
У нас за скрипты будет отвечать класс Script. Я буду объявлять и одновременно реализовывать функции в Script.h/.cpp
Создаем Script.cpp и пишем в нем
Создаем Script.h и пишем в нем
Теперь пишем внутри этого кода вот это
Первая строчка подключает сам lua.lib из архива.
Для чего нужен extern «C»? Дело в том, что lua написан на С и поэтому такой код необходим для подключения библиотек.
Дальше идет подключение хорошо известных многим файлов для работы с консолью
Теперь приступим к определению класса
Самый главный объект библиотеки Lua для C++ — lua_State, он необходим для выполнения скриптов
Дальше идут публичные функции
Эта функция инициализирует lua_State
Его определение в Script.cpp
Первой строчкой мы инициализируем наш lua_State.
Потом мы объявляем список «подключенных библиотек». Дело в том, что в «чистом» виде в луа есть только функция print(). Для математических и прочих функций требуется подключать специальные библиотеки и потом вызывать их как math.foo, base.foo, io.foo. Для подключения других библиотек добавьте в lualibs, например, . Все названия библиотек начинаются с luaopen_. в конце lialibs должен стоять
Просто используем lua_close()
А эта функция выполняет файл. На вход она принимает название файла, например, «C:\\script.lua».
Почему она возвращает int? Просто некоторые скрипты могут содержать return, прерывая работу скрипта и возвращая какое-нибудь значение.
Как вы видите, я выполняю скрипт и возвращаю int. Но возращать функция может не только int, но еще и bool и char*, просто я всегда возвращаю числа (lua_toboolean, lua_tostring)
Теперь мы сделаем функцию, регистрирующую константы (числа, строки, функции)
Мы действуем через шаблоны. Пример вызова функции:
Ее определение
Для каждого возможного значения class T мы определяем свои действия.
*Капитан* последнее определение — регистрация функции
Функции, годные для регистрации, выглядят так:
Где n — количество возвращаемых значений. Если n = 2, то в Луа можно сделать так:
Читайте мануалы по Луа, если были удивлены тем, что одна функция возвращает несколько значений :)
Следующая функция создает таблицу для Луа. Если непонятно, что это значит, то тамошная таблица все равно что массив
Следующая функция регистрирует элемент в таблице.
Если вы не знаете Lua, вы, наверное, удивлены тем, что в один массив помещается столько типов? :)
На самом деле в элементе таблицы может содержаться еще и таблица, я так никогда не делаю.
Наконец, заполненную таблицу нужно зарегистрировать
Ничего особенного нет
Следующие функции предназначены в основном только для функций типа int foo(lua_State*), которые нужны для регистрации в Луа.
Первая из них — получает количество аргументов
Эта функция нужна, например, для функции Write(), куда можно запихать сколь угодно аргументов, а можно и ни одного
Подобную функцию мы реализуем позже
Следующая функция получает аргумент, переданный функции в скрипте
Можно получить все типы, описывавшиеся ранее, кроме таблиц и функций
index — это номер аргумента. И первый аргумент начинается с 1.
Наконец, последняя функция, которая возвращает значение в скрипт
Боевой код
Пора что-нибудь сделать!
Изменяем main.cpp
Компилируем. Теперь можно приступить к тестированию нашего класса
Помните, я обещал сделать функцию Write? :)
Видоизменяем main.cpp
А в папке с проектом создаем файл script.lua
Компилируем и запускаем проект.
Теперь изменяем script.lua
Теперь программа будет выводить по 2 строки ("\n" — создание новой строки), ждать нажатия Enter и снова выводить строки.
В динамических языках файлы с кодом могут выполнять две разных роли: быть исполняемым скриптом, либо быть модулем. В зависимости от роли на эти файлы накладываются разные ограничения, они по-разному устроены и ведут себя тоже по-разному.
На проектах Хекслета студентам приходится писать и то и другое. При этом совершаются типовые ошибки, которые усложняют тестирование кода, его поддержку и расширяемость. Эта статья помогает разобраться с тем, что есть что, и как правильно организовывать код. Бонусом идет объяснение принципов создания утилит командной строки.
Примеры в этой статье приводятся на JavaScript, но язык не принципиален. Все эти особенности присущи и остальным динамическим языкам, таким как PHP, Python или Ruby.
Модуль
Начнем с терминологии. Модуль — это файл, содержащий определения функций, классов и других сущностей (в зависимости от языка). В разных языках модули называют разными словами, но суть от этого не меняется. Ниже пример модуля, содержащего класс User :
Сами по себе модули не являются законченными программами. Их нельзя (бессмысленно) выполнять напрямую, например, запустив в командной строке. Модули предназначены для использования другими модулями (или скриптами). Обычно в языках для этого есть либо механизм импортов, либо механизм автозагрузки, либо то и другое вместе. В JavaScript, чтобы получить доступ к определениям внутри какого-то модуля, его нужно импортировать:
Частая ошибка, которую совершают новички при создании модулей, – выполнение кода вне определений. Например, так:
В какой момент вызовется эта функция? Она будет вызвана ровно в тот момент, когда этот файл будет загружен через импорт или автозагрузку.
В некоторых языках так написать просто невозможно, например, в Java. Компилятор это просто не пропустит. В других языках такой код запрещен стандартами кодирования. Например, линтер в PHP выводит следующее предупреждение:
A file SHOULD declare new symbols (classes, functions, constants, etc.) and cause no other side effects, or it SHOULD execute logic with side effects, but SHOULD NOT do both.
Почему? Главная причина в непредсказуемости поведения. Код, определенный на уровне модуля (вне других функций), вызывается во время автозагрузки или при импорте. Причём не всегда можно точно сказать, где это происходит и сколько раз. Обычно за загрузку кода отвечает какой-либо фреймворк.
Сама загрузка происходит вне кода приложения, а значит, ошибки, возникающие на этом уровне, не смогут быть перехвачены приложением. Кроме того, это просто неожиданно. Обычный импорт приводит к тому, что запускаются какие-то внутренние процессы. Контролировать эту ситуацию невозможно.
Помимо указанных особенностей подобный код часто выполняет побочные эффекты, меняет внутреннее состояние программы, например, глобальные переменные. Это значит, что после загрузки такого модуля у вас вдруг внезапно программа начинает вести себя по-другому. Особенно этим грешат Ruby и Javascript.
Чтобы быть до конца справедливым, иногда это оправдано.
И последнее по списку, но не последнее по важности. Подобные вызовы могут блокировать возможность тестирования. Например, если на уровне модуля есть подобный вызов:
Такой файл будет невозможно загрузить в среду, где отсутствует document . И подмену тоже никак не сделать, так как модуль – это не функция, он не позволяет реализовать инверсию зависимостей.
Если модуль написан правильно, то его безопасно включать в другие модули, и он может быть протестирован.
Скрипт
Что такое скрипт? Скрипт – это любой файл, который предназначен для запуска из командной строки. Он может быть исполняемым, но в общем случае это не обязательно:
Этот скрипт содержит вызов функции, которая печатает на экран текущую дату:
Сам скрипт запускается не напрямую, а через интерпретатор. Такой подход часто используется во время разработки.
Когда скрипт «выпускается» для использования другими людьми, то наличие интерпретатора скрывают, а сам скрипт делают исполняемым. В некоторых языках, дополнительно, из названия исполняемого файла удаляют расширение. Это связано с тем, что для пользователей этого скрипта становится неважно, на каком языке он написан. В JavaScript этого делать не нужно, потому что имя скрипта не связано с названием файла.
Запуск такого скрипта выглядит так:
Чтобы сделать наш файл date исполняемым, нужно выполнить две задачи:
Добавить шебанг в начало файла:
Такая запись внутри исполняемых файлов (скриптов) помогает командному интерпретатору, например, bash, подобрать правильный интерпретатор для запуска файла на исполнение.
Исполняемый файл предназначен только для прямого запуска. Это тупиковый файл. Его нельзя (технически можно, но нельзя) импортировать в другие модули. Он просто не предназначен для этого. Скрипты могут использовать модули, но модули не могут обращаться к скриптам.
Python в этом аспекте пошел своим путем. Каждый модуль питона можно сделать скриптом, добавив специальное условие в конце файла. Это условие срабатывает только тогда, когда файл запускают как скрипт. При этом этот же файл можно использовать и как модуль без страха, что при импорте начнет выполняться какой-то код
Что насчет тестирования? Из-за своей природы скрипты крайне плохо тестируются. С ними нельзя работать, как с обычным кодом. В тестах придётся запускать их как обычную программу и смотреть, что она делает через, например, анализ STDOUT.
Из этого следует одно очень важное правило. Любой нетривиальный скрипт должен быть всего лишь способом запустить библиотечный код.
Библиотеки и утилиты командной строки
Такие пакеты, как eslint или babel, могут использоваться в двух режимах:
- Как программы, которые можно запускать из командной строки.
- Как библиотеки, которые можно поставить в качестве зависимостей, импортировать в код и вызывать.
При таком подходе, исполняемый файл (скрипт) становится клиентом библиотеки. Он не должен делать ничего, что библиотека должна делать сама. Только в этом случае библиотеку можно будет использовать где-то еще.
Это разделение резко упрощает тестирование. Так как логика сосредоточена внутри библиотеки, то с ней можно работать, как с обычным кодом.
В свою очередь скрипт может иметь отдельную логику, которая не имеет отношения к библиотеке. К такой логике, например, относится парсинг аргументов командной строки: eslint —formatter json src . Эта часть приложения существует только тогда, когда с пакетом работают как с утилитой. Парсинг можно размещать напрямую в скриптах, либо выносить в отдельный модуль, который не связан напрямую с используемой библиотекой.
Активные пользователи компьютера время от времени сталкиваются со словом « скрипт » , не всегда понимая, что же оно значит. В рамках сегодняшнего материала я отвечу на этот вопрос, приведу несколько примеров того, как и с помощью чего создаются скрипты, а также расскажу, можно ли самостоятельно написать какой-нибудь скрипт и запустить его для выполнения задачи.
Общее понимание скрипта
С английского языка слово «скрипт» переводится как сценарий, из чего уже можно сделать определенные выводы. Это набор команд, то есть строк кода, которые вкупе выполняют конкретную задачу. Для ее выполнения и создаются скрипты. Они могут быть как очень маленькими по объему и отвечать за запуск каких-то простых служб операционной системы, так и объемными, сравнивая переменные и выводя результат на сайте.
Скрипт хранится в текстовом файле, поэтому при желании его содержимое можно легко просмотреть и даже изменить. Этот текстовый файл запускает цепочку выполнения задачи, которая и запрограммирована в скрипте. Если все строки написаны правильно и целевые объекты удается найти, задача выполняется успешно и скрипт срабатывает.
Скрипты сейчас активно интегрируются на сайтах, в качестве примера можно привести популярный скриптовый язык – JavaScript. Однако изначально они работали в операционных системах и выполнялись при помощи внутреннего синтаксиса командной оболочки.
История появления скриптов
Для общего развития предлагаю немного окунуться в историю появления скриптов и взглянуть на то, какими они были раньше. Начали применять их под управлением семейства операционных систем Unix еще 50 лет назад. Одной из первых командных оболочек была sh, в ней использовались shell scripts, которые позволяли выполнять самые разнообразные задачи на компьютере.
Ниже вы видите небольшой код, предназначенный для конвертирования изображения из JPG в PNG:
Сферы использования скриптов
Скрипты часто используются на веб-сайтах. Чаще всего они пишутся на языках PHP и JavaScript. Первый используется для написания той части сайта, которую не видит посетитель, то есть бэкенда, а второй в большинстве случаев отвечает за визуал, то есть разные анимации, плавные переходы и другие действия (фронтэнд).
Если с визуальными скриптами все понятно, то невидимые для глаза посетителя скрипты собирают информацию в базы данных, проверяют правильность заполнения форм и выполняют другие сложные задачи.
Соответственно, в операционной системе скрипты тоже выполняют серьезные операции. Скрипты, запущенные через консоль (командную строку), могут влиять на открытие служб и приложений, вносить изменения в системные файлы или даже устанавливать другие программы (вирусы так и попадают в систему).
Если говорить о Windows, то в ней вы можете найти встроенный инструмент CMD (PowerShell), который и предназначен для запуска скриптов, хранящихся в формате BAT.
Самостоятельное написание и применение скриптов
Разберем самостоятельное написание и применение скриптов на примере Windows. Допустим, у вас стоит задача проверить стабильность соединения с конкретным сайтом без запуска браузера. Для этого есть одна полезная команда, запускаемая через Командную строку. А если нужно еще сформировать и отчет о результатах проверки, не совсем удобно будет вводить несколько разных команд по очереди, особенно в тех случаях, когда задача выполняется раз в несколько дней или чаще. Тогда создается BAT-файл с таким содержимым:
Приведенные выше примеры должны помочь разобраться с тем, что представляют собой скрипты и где они используются. При желании можно даже самому попробовать создать текстовый файл с кодом и запустить его на компьютере, но для использования скриптов в профессиональных целях понадобится выучить один из скриптовых языков программирования.
Скрипт (сценарий) — это последовательность действий, описанных с помощью скриптового языка программирования (JavaScript, PHP, Perl, Python и др.) для автоматического выполнения определенных задач.
Например, для функционирования какого-нибудь сервиса, инструмента на сайте.
Скрипты, как правило, взаимодействуют с различными базами (например, MySQL), позволяющими хранить данные и иметь быстрый доступ к ним.
Языки сценариев
Каждый из скриптов написан на том или ином программном языке. Их также называют языками сценариев или скриптовыми языками. Сегодня наиболее популярными и активно используемыми являются:
Они имеют разный синтаксис, различные возможности и области применения. В веб-разработке наиболее часто используется JavaScript и PHP.
Как установить скрипт на сайт
Для того чтобы добавить тот или иной сценарий на свой сайт, веб-разработчик должен создать отдельный script-файл. В нем он должен прописать сам сценарий на соответствующем языке.
После необходимо сделать следующее:
Загрузить все файлы скрипта через ftp.
Разграничить права доступа.
Запустить инсталлятор, который сам создаст конфигурационные файлы.
Заполнить все необходимые данные (например, доступ к базе MySQL).
Осуществить настройку в панели управления.
Иногда настройка происходит не в ПУ, а предварительно в файлах конфигурации.
Работоспособность скрипта можно проверить заранее на своем ПК, не загружая его на сервер. Но для этого необходимо использовать специальный софт, способный сымитировать условия, близкие к тем, где размещается сайт.
Как это работает
Ниже описана схема срабатывания и работы скрипта.
Выполняется некоторое условие на сайте.
Эта информация поступает на веб-сервер.
После на сервере запускается файл скрипта.
Далее происходит обработка данных и выбор ответа в соответствии с прописанным сценарием.
Информация с веб-сервера поступает на ПК пользователя, в результате чего происходит ответное действие.
Скрипты не обязательно запускаются в результате каких-либо действий пользователя. Существуют сценарии, которые выполняются автоматически, без участия человека.
Например, выскакивающая реклама, которая появляется спустя 5 минут нахождения на сайте. Или автоматический скроллинг баннеров. В данном случае открытие веб-страницы уже является условием. Также скрипт не обязательно выполняется на сервере. Например, некоторые сценарии на сайте, написанные на языке JavaScript, выполняются прямо в браузере, если тот оборудован встроенным интерпретатором JS. Сегодня почти все современные браузеры его имеют.
Таким образом, сценарии могут выполняться как сами по себе, так и в результате определенных действий посетителя. А происходить это может как на стороне пользователя, так и на стороне сервера.
Преимущества и задачи
Главная задача любого скрипта на сайте — выполнение заданной функции. В веб-разработке их используют:
для расширения функционала ресурса, добавления уникальных инструментов;
сбора статистики о посещениях и посетителях;
упрощения кода веб-страницы;
добавления динамических элементов дизайна и т. д.
В контекстной рекламе их стали использовать для автоматизации управления рекламными кампаниями. В качестве примера можно вспомнить автоматические стратегии управления ставками в «Директе» и AdWords.
Также за последние годы скрипты стали активно использоваться для имитации действий реальных пользователей. Например, сервисы накрутки счетчиков активности в социальных сетях, способные всего за пару секунд сымитировать активность нескольких тысяч пользователей. Или сервисы автопостинга, которые в автоматическом режиме осуществляют публикации в заданное время.
Другие пользователи могут даже не подозревать, что это не реальный человек, а заскриптованный алгоритм.
Использование скриптов обладает рядом преимуществ.
Безопасность. Все сценарии являются независимыми элементами и никак не влияют на работоспособность сайта (системы). То есть, если в скрипте произошла ошибка, это повлияет только на работу отдельной функции, но никак не на работу всего ресурса. Обращаясь к описываемому ранее примеру, работать перестанут только комментарии, но никак не сама веб-страница.
Упрощение. Для работы некоторых сценариев достаточно написать одну строчку кода, при этом на обычном языке потребовалось бы написать десятки строк.
Наличие инсталляторов. Большинство скриптов снабжено инсталлятором, который сам создает все необходимые файлы конфигурации. Программисту не нужно «ковыряться» в исходном коде, достаточно запустить инсталлятор, ввести все необходимые данные и перейти к настройке в панели управления.
Интерпретаторы, встроенные в браузеры. Некоторые скрипты могут выполняться прямо в браузере пользователя, что ускоряет процесс их выполнения.
Расширенная функциональность. Script способен расширить функционал сайта, дать ему новые инструменты и возможности для взаимодействия с посетителями.
Роль скриптов в СЕО
Несмотря на то, что скрипты способны повышать функционал сайта и его юзабилити, их нужно использовать с умом.
Дело в том, что каждый скрипт — это определенная нагрузка на сервер (если он выполняется в браузере — на браузер). Чрезмерное их количество может привести к тому, что сайт будет зависать и тормозить. Это негативно скажется на поведении посетителей. А, как известно, поведенческие факторы играют одну из главных ролей при ранжировании страниц в поисковой выдаче. Чтобы не портить поведенческие факторы своей площадки, необходимо убрать все лишние скрипты. Оставлять стоит только самые «нужные». Именно поэтому все специалисты в области СЕО рекомендуют не использовать совсем или использовать по минимуму анимационные и динамические элементы. Да, это красиво, но неэффективно с точки зрения производительности.
Также одной из главных рекомендаций является помещение всех скриптов в самый конец исходного кода, чтобы при открытии веб-страницы они загружались в последнюю очередь. Люди не всегда имеют хорошее интернет-соединение. Особенно это касается мобильной аудитории. Скрипты — это самый «тяжелый» фрагмент кода. Из-за его долгой загрузки пользователь может покинуть сайт, так и не дождавшись появления основного контента. Такой визит будет засчитываться как отказ. Это также минус в копилку поведенческих факторов.
Слишком много отказов может привести к снижению позиций ресурса в выдаче и, следовательно, посещаемости.
Таким образом, сценарии не могут напрямую повлиять на поисковое продвижение ресурса, но могут повлиять на факторы, от которых зависит результат этого продвижения. Это:
общая производительность сайта;
скорость загрузки страниц.
СЕО — это многогранный процесс, состоящий из множества «мелких» деталей. Поэтому каждой из них нужно уделять достаточно внимания, в том числе и скриптам сайта.
Скрипт (script) – это понятие в программировании, обозначающее последовательность команд для выполнения конкретных операций. По сути, это небольшая программа, заточенная под определенное действие. Скрипты используются в веб-разработке, в частности, чтобы автоматизировать операции. Существуют скриптовые языки программирования, заточенные под их написание, – так называемые «языки сценариев». Сценарии – второе название скриптов. Скриптовые ЯП обычно интерпретируемые, а не компилируемые.
История развития
Популярный ЯП, интерпретатор которого есть во всех современных браузерах, – JavaScript, который коротко называют JS. На его основе написано огромное количество скриптов для веб-страниц, и само понятие скрипта во многом связывают с этим языком. Он зародился в 1999 году и имел тогда название LiveScript. До него похожие скриптовые языки уже пытались создать, но LiveScript прижился и продолжил развитие, со временем изменив название. Изначальным его создателем была компания Netscape, позже разработку другой версии JS начала Microsoft (сейчас эта версия называется Jscript и имеет ряд отличий от стандартного JavaScript). Со временем благодаря работе компании W3C язык обрел единые рекомендации по написанию кода и стандарты. Сейчас с его помощью реализуется большое количество веб-технологий на стороне как сервера, так и клиента (в браузере).
Назначение скриптов
С помощью сценариев выполняется огромное количество рутинных операций, например:
Операции для продвижения. Огромное количество рутинных манипуляций, необходимых для SEO и рекламы, можно автоматизировать. Для этого существуют специальные программы и надстройки для CMS, работающие за счет скриптов. Их можно найти в Сети или написать самостоятельно. Например, веб-программист может написать сценарий для автоматического заполнения полей при создании страницы через CMS. С его помощью можно автоматизировать, скажем, генерацию метатегов или заполнение стандартных страничек. Так что же такое скрипт? Это замена нескольким часам работы контент-менеджера.
Преимущества использования
В целом у использования скриптов в веб-разработке почти нет альтернатив. Другие методы реализации существуют, но не всегда доступны и оправданы.
Недостатки применения
- Скриптовые языки в целом медленнее, чем компилируемые ЯП, и это нужно учитывать при разработке.
- Для некоторых из них до сих пор не создана интегрированная среда разработки (IDE), полностью заточенная под их функции. Впрочем, для веб-программирования это не так важно. Для написания скриптов достаточно редакторов кода, а отладку, если сценарий выполняется на стороне пользователя, можно произвести через браузер. Многие разработчики считают, что функциональность IDE для скриптов избыточна.
- За счет доступности многих скриптовых языков в них низкий порог вхождения, что порождает обилие низкоквалифицированных разработчиков. Условная бесплатность парадоксальным образом создает таким ЯП своеобразную репутацию, в результате крупные проекты часто делают выбор в пользу других вариантов. Тем не менее тот же JavaScript очень широко распространен и уже используется не только в веб-разработке, став известен как мультипарадигменный язык.
Типы скриптовых ЯП
Как и любые другие, они разделяются на интерпретируемые (выполняются динамически) и компилируемые (сначала компилятор «собирает» программу целиком и переводит на машинный язык, и только потом она начинает выполнение). Впрочем, первых среди скриптовых языков больше. К ним относятся и JavaScript, и PHP, и Python, и многие другие популярные в веб-разработке ЯП. Также существует классификация по назначению:
- командно-сценарные. Они предназначены для выполнения действий в операционных системах. Работа в консоли любой ОС производится на командно-сценарном языке этой системы (PowerShell, Bash и т. д.);
- встроенные (прикладные). Заточены под конкретные задачи и обычно являются внутренними языками какой-либо системы. Например, AutoLISP применяется в САПР AutoCAD;
- общего назначения. Языки, предназначенные для широкого спектра задач. Именно к ним относятся JS и большинство других ЯП, применяемых в веб-разработке.
Скриптовые языки
Помимо JavaScript, в веб-программировании активно используются Jscript, PHP, Python. Известен также Perl, пик популярности которого пришелся на 2000-е годы, после чего он уступил место другим языкам, но до сих пор используется для создания сайтов. Существуют и другие менее известные решения, такие как AngelScript, заточенный под использование в приложениях. Все скриптовые языки высокоуровневые, большинство из них интерпретируемое. Многие являются мультипарадигменными, то есть поддерживают несколько моделей написания кода (структурную, объектно-ориентированную, функциональную и т. д.).
Значение скриптов в продвижении
- Грамотное использование скриптов повышает юзабилити сайтов, что в свою очередь хорошо сказывается на поведенческих факторах, важных для продвижения. Динамически подгружаемое содержимое, слайдеры – несложно догадаться, что такие скрипты удобны в первую очередь пользователям. Но это не единственное, что важно для продвижения.
- Сценарии позволяют автоматизировать огромное количество рутинной работы, включая публикацию новых записей или генерацию метатегов. Заскриптованные алгоритмы справляются с такими задачами быстрее, чем люди, и отнимают меньше средств.
- Существует ряд скриптов, имитирующих поведение пользователей, что в свою очередь находит применение в продвижении. Так, можно массово регистрироваться в почте или соцсетях, лайкать публикации и т. д. Можно запрограммировать почти любую, сколь угодно сложную последовательность действий пользователя – никто даже не догадается, что это скрипт, а не человек.
Скрипты в контекстной рекламе
Контекстные рекламные кабинеты поисковых систем поддерживают сценарии для выполнения рутинных действий. Это намного удобнее, чем выполнять аналогичные действия вручную. С помощью скриптов можно автоматизировать запуск кампании, внесение изменений, ведение статистики и многое другое. Отключение и подключение новых площадок, групп и кампаний тоже можно производить в автоматическом режиме на основе статистики эффективности.
Узнать больше о том, как использовать скрипты в продвижении и рекламе, помогут тематические курсы IMBA для начинающих специалистов. Вам расскажут, что нужно делать, чтобы с помощью сценариев повысить продажи, автоматизировать и упростить работу.
Читайте также: