Действия оказывают влияние на внешний мир или сами подвергаются его влиянию. В общем случае результат выполнения Действий всегда зависит либо от порядка Действий (т.е. от момента выполнения), либо от количества повторений Действия.

Действия в языках программирования реализованы в виде функций или методов.

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

Действия сложно тестировать, т.к. необходимо воссоздавать контекст и обеспечивать выполнение предусловий (в частности, по моменту выполнения и количеству повторений Действия). Такие тесты не дают полной гарантии, т.к. не гарантируют аналогичный контекст и предусловия в реальной системе. Более того, действия “распространяются” по стеку вызовов. Любая функция, вызывающая Действие, сама становится Действием.

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

  1. Использовать как можно меньше Действий.
  2. Минимизировать размер каждого конкретного Действия. Извлекать подготовительные Вычисления, например.
  3. Ограничивать Действия точками контакта с внешним миром. Другими словами, Действия нужно вытеснять как можно ближе к точкам входа / выхода системы (обработка входящих запросов, обработка сохранения данных в БД или исходящих запросов).
  4. Ограничивать зависимость Действий от времени (момента запуска и количества повторений).