-
Notifications
You must be signed in to change notification settings - Fork 4
Optimization
Vector BCO edited this page Jun 11, 2020
·
3 revisions
- Переменные должны определяться в том месте где они используются (about_scopes)
- Функции которые используются в одном скрипте оптимально выносить в начало скрипта
- Функции которые используются в нескольких скриптах следует выносить в модули
- Входные параметры (в скриптах или функциях) следует выносить в Param() блок, где определять их тип, и при возможности валидировать
- Желательно иметь возможность запускать скрипты в Non-Interactive mode (read-host должен использоваться только если параметр не задан)
- Количество обязательных параметров должно быть минимизировано (никто не будет пользоваться скриптом в который нужно подать 100 параметров)
- Написанный скрипт не стыдно перечитать и поправить
- Для финальных релизов скриптов или функций приветствуется использование $ErrorActionPreference = "stop" в комплекте с Try{}Catch{}Finally{}
- Всегда есть другое решение кроме вами придуманного, хотя возможно ваше более правильное (красивое\эффективное)
- Использование фильтров в максимально левой позиции
- Если параметры можно подать массивом, то стоит это делать
- Если есть возможность не использовать циклы то не стоит пренебрегать этой возможностью
- Если выбор стоит между созданием массива объектов или набора хештаблиц с параметрами - объекты предпочтительнее
- Дубликаты кода должны быть минимизированы (убраны в функции или удалены)
- Меньше ненужных действий - больше скорость выполнения скрипта