Функциональная архитектура максимизирует объем кода, написанного в чисто функциональном (неизменяемом) стиле, и сводит к минимуму объем кода, работающий с побочными эффектами. Под «неизменяемостью» имеется в виду, что после создания объекта его состояние изменяться не может — в отличие от изменяемых объектов, которые могут изменяться после создания.
Принципы юнит-тестирования
·
Владимир Хориков