Цитаты из книги «Чистая архитектура. Искусство разработки программного обеспечения» Роберта Мартина📚 — лучшие афоризмы, высказывания и крылатые фразы — MyBook. Страница 35
image
Традиционно принцип единственной ответственности описывался так: Модуль должен иметь одну и только одну причину для изменения.
17 июля 2019

Поделиться

Эти принципы детально описаны во множестве публикаций[22].
17 июля 2019

Поделиться

Цель принципов – создать программные структуры среднего уровня, которые: • терпимы к изменениям; • просты и понятны; • образуют основу для компонентов, которые могут использоваться во многих программных системах
17 июля 2019

Поделиться

Эта идея положена в основу технологии регистрации событий (event sourcing)[19]. Регистрация событий (event sourcing) – это стратегия, согласно которой сохраняются транзакции, а не состояние. Когда требуется получить состояние, мы просто применяем все транзакции с самого начала.
16 июля 2019

Поделиться

Изменяемое состояние этих других компонентов открыто всем проблемам многопоточного выполнения, поэтому для защиты изменяемых переменных от конкурирующих обновлений и состояния гонки часто используется некоторая разновидность транзакционной памяти.
16 июля 2019

Поделиться

Один из самых общих компромиссов, на которые приходится идти ради неизменяемости, – деление приложения или служб внутри приложения на изменяемые и неизменяемые компоненты. Неизменяемые компоненты решают свои задачи исключительно функциональным способом, без использования изменяемых переменных. Они взаимодействуют с другими компонентами, не являющимися чисто функциональными и допускающими изменение состояний переменных
16 июля 2019

Поделиться

Ответ на этот вопрос до нелепого прост: все состояния гонки (race condition), взаимоблокировки (deadlocks) и проблемы параллельного обновления обусловлены изменяемостью переменных. Если в программе нет изменяемых переменных, она никогда не окажется в состоянии гонки и никогда не столкнется с проблемами одновременного изменения. В отсутствие изменяемых блокировок программа не может попасть в состояние взаимоблокировки. Иными словами, все проблемы, характерные для приложений с конкурирующими вычислениями, – с которыми нам приходится сталкиваться, когда требуется организовать многопоточное выполнение и задействовать вычислительную мощность нескольких процессоров, исчезают сами собой в отсутствие изменяемых переменных.
16 июля 2019

Поделиться

Если все вышесказанное показалось вам запутанным и непонятным, тогда можете отложить эту книгу и прекрасно провести время, изучая функциональное программирование и язык Clojure.
16 июля 2019

Поделиться

любую зависимость исходного кода, где бы она ни находилась, можно инвертировать.
16 июля 2019

Поделиться

По сути, наследование – это всего лишь повторное объявление группы переменных и функций в ограниченной области видимости.
16 июля 2019

Поделиться