Аккуратность скрипта

Тип переменной

В Autoit существует только один тип данных - Variant , поэтому для удобства чтения скриптов рекомендуется использовать префиксы в переменных:

$a<символ> - (Array) Массив данных (последующий <символ>, взятый из списка ниже, определяет тип данных в массиве)
$b - (Binary data) Двоичные данные
$h - (File or window handle) Дескриптор файла, окна и т.д.
$i - (Integer) Целое число
$f - (Boolean) Логический тип, может принимать значения True или False
$n - (Floating point number) Число с плавающей точкой
$s - (String) Строка
$v - (Variant) Неопределенный или изменяющийся тип данных, базовый тип для Autoit
$t - (Struct) Структура в стиле C/C++, для использования в DllCall, в сообщениях WM_*, при обработке данных и т.п.
$p - (Pointer) Указатель на структуру или на её элемент
$o - (Object) Объект

Пример

Local $aiArray[5] = [0, 1, 2, 3, 4] ; массив с целыми числами
Local $asArray[5] = ['Строка1', 'Строка2', 'Строка3'] ; массив со строками
$bBinary = Binary("0x00204060") ; бинарный
$hWnd=GUICreate("Заголовок") ; Дескриптор окна или элементов из UDF
$iButton = GUICtrlCreateButton("Кнопка", 5, 5) ; идентификаторы элементов - целые числа, а также байты, пиксели, тики
$fBoolean= False ; Логический тип
$nNumber = Random(0, 1)
$sPath = 'C:\WINDOWS' ; строка, результат функций FileGetAttrib, IniRead
$vTmp = Number($vTmp) ; переменная, которая может содержать любые данные
$tStruct = DllStructCreate("wchar[256]")
$pIcon = DllStructGetPtr($tIcon)
$oObject = ObjCreate('Scripting.Dictionary')


Рекомендации к правильному названию функций и переменных

Функции принято называть начиная с нижнего подчёркивания, например _FuncName(). Это помогает отличить их от нативных (родных) функций AutoIt3, например Beep() и _Beep()
Внутренние функции UDF начинаются с двойного подчёркивания, например __FuncName(). Эти функции нужны только для работы функций UDF.
Для имён функций и переменных используйте осмысленные имена, позволяющие понять их назначение.
Для счётчиков цикла, например для For $i = 1 To $aArray[0][0] переменная $i более читабельнее выглядит в $aArray[$i][0], чем $aArray[$iCount][0].
Константы всегда в верхнем регистре, например $GUI_HIDE.
Для читабельности элементы имени можно разделить нижним подчёркиванием или заглавными буквами, $s_key_name, $sKeyName, $s_Key_Name.
Чтобы отличать глобальные переменные от локальных можно добавить префикс, например $g_iTrigger

Используйте Tidy

Используйте Tidy, чтобы сделать скрипт читабельным для других. Некоторые действия Tidy:
  • Установит корректные отступы согласно уровню вложения участков кода.
  • Установит пробелы между операторами
  • Добавит после EndFunc комментарий, указывающий к какой функции он относится
  • Преобразует регистр символов в операторах, функциях и макро согласно стандарту.
  • И другие полезные операции.

    Использование функций

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

    Организация скрипта

    Как известно скрипт выполняется последовательно, но это не относится к функциям. Точка вызова функции имеет значение, а сама функция может находится в любой точке скрипта, кроме как внутри другой функции или какого-нибудь цикла или условия. Также ключевые слова с префиксом # могут находится в любой точке, например #NoTrayIcon, #OnAutoItStartRegister. Функции имеющие многократный вызов лучше перенести в конец скрипта. Функции имеющие однократный вызов, например с помощью HotKeySet, AdlibRegister, OnAutoItExitRegister, #OnAutoItStartRegister иногда лучше разместить рядом с местом вызова.
    #include помещает содержимое указанного файла в позицию вызова. Все UDF являются набором изолированных функций, но из-за глобальных констант все включаемые UDF рекомендуется указать в начале скрипта после директив начинающихся с символа #.
    Далее указываются все глобальные переменные скрипта, и после них тело скрипта.
    В начале скрипта рекомендуется указать:
  • Версию AutoIt3 (скрипт на другой версии может работать не корректно).
  • Ссылку на источник (это позволяет быстро проверить наличие новой версии или ознакомится с поправками и дополнениями).
  • Другую полезную информацию (автор, которому говорить "спасибо"; дату создания)

    Версия программы

    Известно множество вариантов присвоение версий программному продукту, о которых можно узнать введя в поисковике фразу "Нумерация версий программного обеспечения". Но для начала стандартный способ:
    Номер версии состоит из 4-х чисел разделённых точкой, например: 1.1.1.1
    Правила, по которым следует увеличивать число в позициях:
    Для новичков рекомендуется начинать версию программы с 0.1.0.0, для специалистов первая публичная версия начинается с 1.0.0.0
    Последние две позиции не являются обязательными
    major.minor[.build[.revision]]
    major.minor[.maintenance[.build]]