Когда выполняется длительный процесс, рекомендуется предоставить пользователю обратную связь, например, обновить индикатор выполнения.
Некоторые часто задаваемые вопросы для библиотек графического интерфейса предлагают что-то вроде этого:
function long_running_progress()
do_some_work()
update_progress_bar()
while finish
do_some_work()
update_progress_bar()
end while
end function
В любом случае, мы знаем, что лучше всего отделять код бизнес-логики от кода пользовательского интерфейса. В приведенном выше примере смешивается код пользовательского интерфейса внутри функции бизнес-логики.
Каков хороший метод реализации функций на уровне бизнес-логики, ход выполнения которых можно легко отслеживать с помощью пользовательского интерфейса без смешивания уровней?
Приветствуются ответы для любого языка или платформы.