Возникла у меня такая необходимость: выполнять операции последовательно, одну за другой. В принципе, довольно тривиальная задача, ничего особенного. За парой небольших исключений. Первое — каждый этап возвращает какой-то статус (типа success или код ошибки), и если выполнение операции не успешно, следующий этап выполняться не должен.

Первой мыслью у меня было использовать конструкцию столь же древнюю, сколь и джек на 3,5 мм. Я говорю про if-else. Но эта мысль практически сразу извинившись ушла, даже не дожидаясь какой-либо ее реализации. Даже без перевода ее на код можно сделать вывод, что выглядеть это будет ужасно, криво и неэстетично.

Continue reading