Skip to content

Optimization

Vector BCO edited this page Jun 11, 2020 · 3 revisions

К списку тем

Хорошие практики (Общие)

  1. Переменные должны определяться в том месте где они используются (about_scopes)
  2. Функции которые используются в одном скрипте оптимально выносить в начало скрипта
  3. Функции которые используются в нескольких скриптах следует выносить в модули
  4. Входные параметры (в скриптах или функциях) следует выносить в Param() блок, где определять их тип, и при возможности валидировать
  5. Желательно иметь возможность запускать скрипты в Non-Interactive mode (read-host должен использоваться только если параметр не задан)
  6. Количество обязательных параметров должно быть минимизировано (никто не будет пользоваться скриптом в который нужно подать 100 параметров)
  7. Написанный скрипт не стыдно перечитать и поправить
  8. Для финальных релизов скриптов или функций приветствуется использование $ErrorActionPreference = "stop" в комплекте с Try{}Catch{}Finally{}
  9. Всегда есть другое решение кроме вами придуманного, хотя возможно ваше более правильное (красивое\эффективное)

Хорошие практики (Скорость)

  1. Использование фильтров в максимально левой позиции
  2. Если параметры можно подать массивом, то стоит это делать
  3. Если есть возможность не использовать циклы то не стоит пренебрегать этой возможностью
  4. Если выбор стоит между созданием массива объектов или набора хештаблиц с параметрами - объекты предпочтительнее
  5. Дубликаты кода должны быть минимизированы (убраны в функции или удалены)
  6. Меньше ненужных действий - больше скорость выполнения скрипта

Clone this wiki locally