Предисловие

Книга начинается с жирного утверждения, что архитектуры одинаковы независимо от переменных.
Автор объясняет, что язык программирования не сильно изменился по сравнению со старым, поэтому архитектура тоже не сильно изменилась.

Приоритет работы

  1. Срочно и важно
  2. Важный
  3. Срочный
  4. Ни один

Парадигма

Структурированное, объектно-ориентированное, функциональное программирование — это старая парадигма. но они полезны в наши дни, и они связаны между собой.

Автор рассказывает об истории Дейкстры.

Дейкстра хочет использовать евклидову иерархию для решения сложных задач программирования. Он обнаружил, что функция «перейти» препятствует модульности. Поэтому он использовал варианты «если/то/иначе» и «сделать/пока» вместо функции «перейти».

«Доказательство» в евклидовой иерархии не используется большинством программистов, вместо этого они используют научный метод.
«Опровержение» — это научный метод доказательства того, что они не ошибаются.
С точки зрения программирования, вы можно показать, что есть ошибка, но нельзя показать, что ее нет.

Я думаю о TDD, когда читаю предложение выше. Также я думаю, что BDD является доказательством в евклидовой иерархии.

Объектно-ориентированное программирование

Что такое ООП? автор спрашивай.

Он говорит, что объект, моделирование реального мира - это неоднозначное определение и не может понять, где это цель.
Я думаю, что объектно-ориентированная философия - это философия для более легкого понимания программы.

Также он перечисляет различные определения.

  1. Инкапсуляция
    Может инкапсулировать данные и функции в программировании на языке C. Скорее большее количество языков ООП не заставляет его использовать.
  2. Наследование
    Другими словами, наследование — это переопределение переменных и функций. Также в «C» мы можем архивировать наследование.
  3. Полиморфизм
    Он говорит, что нет никакой разницы в использовании указателя функции с поиском в v-таблице и полиморфизмом. Но ООП предоставляет эту функцию намного лучше, чем использование указателя на функцию.

Используя полиморфизм, мы можем использовать подключаемую архитектуру для создания независимых модулей. В настоящее время мы предпочитаем использовать протокол, а не переопределять наследование.
Также, используя инверсию зависимостей, мы можем инвертировать поток управления. И это позволяет нам сделать независимый компонент.

Функциональное программирование

Stateless — самая важная концепция функционального программирования. Это решает проблему параллелизма при использовании многопоточного программирования.
Мы постоянно пытаемся разделить переменный компонент и неизменяемый компонент для решения проблемы параллелизма без распространения.

Поиск событий

Автор говорит, что с его помощью мы можем архивировать неизменяемые приложения.
Поиск событий — это процесс, основанный на транзакциях, как и git. Он хранит транзакцию, а не состояние. Таким образом, только приложение CR, а не вся операция CRUD.

Вывод

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