Оптимизация кода – это процесс улучшения эффективности и производительности программы. Это может включать в себя уменьшение размера кода, улучшение его читаемости, удаление дублирования и улучшение структуры программы. Оптимизация также может включать в себя улучшение алгоритмов и структур данных, используемых в программе.
Оптимизация кода может быть выполнена на разных уровнях: от изменения отдельных строк кода до изменения архитектуры всей системы. Важно помнить, что оптимизация должна быть обоснована, и не следует вносить изменения только ради изменений.
Оптимизировать и улучшить читаемость вашей программы поможет палитра "Мой блоки". Красно-розовая кнопка «Мои блоки» в меню позволяет создать свой блок.
В каких случаях удобно использовать собственные блоки:
- для сокращения основного скрипта замена больших блоков на подпрограмму делает ваши скрипты короче и проще для понимания.
- для замены повторяющихся блоков позволяет сократить код за счет вызова функции, а не многократного повторения одного и того же блока команд.
Для задания функции перейдите в палитру Мои блоки и нажмите на кнопку Создать Блок. В появившемся окне введите название вашей функции и дополнительные параметры при необходимости.

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


Бесконечные циклы в Моих блоках
Мы не рекомендуем использовать бесконечные циклы внутри функций, чтобы минимизировать риск возникновения параллельных процессов, мешающих выполнению основной программы.
Если мы хотим, чтобы наш робот продолжал движение до цветовой метки, то в основной программе мы можем написать такой цикл:

Собственные блоки с параметром
Вы можете добавить параметры в собственные блоки и, например, передавать значение скорости и коэффициентов при вызове функции. Для этого при создании собственного блока добавляются числовые параметры:

Именование переменных
Переменные для собственных блоков не должны совпадать с именами переменных, созданными в основной программе, во избежании ошибок исполнения.
Обратите внимание, что переменные для расчетов скорости необходимо перетащить из шапки блока определения собственного блока:

При вызове такой функции мы должны непосредственно передавать значение числовых параметров для установки скорости движения и коэффициентов. Напишем программу которая увеличивает движение на втором круге (после обнаружения желтой цветовой метки):

Обратите внимание, что между циклами, запускающими движение по линии, есть блок движения вперед на 5 см, это необходимо для того, чтобы уехать с желтой метки на карте.
Или вы можете добавить цикл движения по оборотам энкодера, чтобы сохранить движение по линии и при этом проехать цветовую метку:

Добавление текстовых меток
Для удобства введения параметров при вызове функции удобно добавлять текстовые метки перед числовыми параметрами
