REPL

Оригинальное название: Read-Eval-Print Loop (REPL)

Коротко

Интерактивный режим языка: вводишь выражение, программа сразу выполняет его, печатает результат и ждёт следующую строку. Удобен для проверки идей без создания файла.

Что такое «REPL»

Название — аббревиатура четырёх шагов: Read, Eval, Print, Loop. Прочитать ввод, вычислить, вывести ответ и вернуться к началу. Идея пришла из языка Lisp, где интерактивная работа с программой была нормой ещё в 1960-х. Сегодня REPL есть почти у каждого языка с интерпретатором: достаточно набрать в терминале python3, node или php -a. Консоль инструментов разработчика в браузере — тоже REPL, только для JavaScript на открытой странице.

Как устроен цикл

В отличие от обычного запуска скрипта, состояние между командами сохраняется. Объявили переменную в одной строке — она доступна в следующей. Импортировали библиотеку — можно сразу вызывать её функции. Это превращает REPL в черновик: проверить регулярное выражение, посмотреть, что вернёт незнакомая функция, разобрать ответ API по частям. Ошибка в одной строке не завершает сеанс, просто выводится сообщение и можно попробовать снова.

Пример сессии

$ python3
>>> 0.1 + 0.2
0.30000000000000004
>>> round(0.1 + 0.2, 2)
0.3
>>> prices = [1200, 450, 3100]
>>> sum(prices) / len(prices)
1583.3333333333333

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

REPL при поддержке сайта

Для CMS есть консоли, которые загружают ядро сайта целиком. Команда wp shell из WP-CLI открывает интерактивный PHP с доступом ко всем функциям WordPress: можно получить настройку, найти запись, проверить, что возвращает хук. В административной панели 1С-Битрикс похожую роль играет «Командная PHP-строка» в разделе инструментов. Это сильные средства отладки, но всё введённое выполняется по-настоящему. Команда удаления на рабочем сайте удалит данные без всякого «предпросмотра». Поэтому эксперименты лучше проводить на тестовой копии, а на боевом сервере ограничиваться чтением.

Обновлено:

Все термины раздела «Backend»

Что будем искать? Например,Продвижение