Что нового

Функции в коде

Makrut

Новичок
Сообщения
44
Репутация
2
Здраствуйте. Интересует как лучше писать свой код: есть первый вариант, где я располагаю конструкции func() - endfunc и вызываю их, а есть второй вариант, когда я создаю свою собственную библиотеку с этими функциями, пишу в начале кода #include 'моя библиотека' и затем, когда мне надо, вызываю их. Пример, если плохо объяснил ниже. Собственно вопрос, каким образом лучше располагать функции, если разговор идет о 5-8 функциях, и почему так будет лучше?

Первый пример:
Код:
If $1 = 1 Then my()

Func my()
    MsgBox(0, "Hello", "World!")
EndFunc

Второй пример:
Код:
#include <MyFunc.au3>
If $1 = 1 Then _my
 

InnI

AutoIT Гуру
Сообщения
4,982
Репутация
1,460
Если функция используется только в одном скрипте, то нет смысла её выносить. Если функция используется в двух и более скриптах, то лучше сразу её вынести. Во-первых, это избавит от лишнего копирования. Во-вторых, при необходимости изменений нужно будет их вносить во все скрипты с этой функцией, вместо одной правки в UDF.

Я иногда пишу функцию для конкретного скрипта. Потом вдруг обнаруживаю, что "если чуть-чуть вот здесь изменить", то функция оказывается полезной и в других скриптах. После этого она (функция) сразу выносится в UDF.
 
Автор
Makrut

Makrut

Новичок
Сообщения
44
Репутация
2
InnI, то есть по занимаемым ресурсам и быстродействию разницы не будет?
 

InnI

AutoIT Гуру
Сообщения
4,982
Репутация
1,460
Makrut
по занимаемый ресурсам
Конечно, UDF будет загружена полностью, даже если вы используете одну функцию из тысячи. Но. Несколько лишних мегабайт памяти - сейчас это не проблема. А для уменьшения размера exe-файла существуют Stripper и UPX (хотя и здесь разница в сотню килобайт).

и быстродействию
Опять же. Разница будет на время чтения и размещения всех функций UDF в памяти. Микросекунда? Миллисекунда?
 
Верх