Обзор “Clean Architecture” (Часть I: дизайн и архитектура, парадигмы программирования)

Рис. 1 “Обложки книг на русском и английском”
Рис. 2 “Содержание книги”

Introduction

Основная мысль вступления такова

What is Design and Architecture

Основная мысль главы в том, что разницы между архитектурой и дизайном нет.

Рис. 3 “Взаимоотношение между архитектурой и дизайном”

A Tale of Two Values

Каждое программное обеспечение содержит два разных аспекта с точки зрения стейкхолдеров. Они представлены на рисунке ниже.

Рис.4 “Values of software system”
Рис.5 “Матрица Эйзенхауэра в применении к решениям вида behavior и architecture”

Starting with the bricks: programming paradigms

Начинается эта часть с главы

Paradigm Overview

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

Рис.6 “Обзор парадигм программирования”

Structured Programming

Развитием этой парадигмы занимался Э́дсгер Ви́бе Де́йкстра, который доказал, что любую программу можно сконструировать из трех структур: sequence, selection (if/then/else), iteration (do/while).

Рис.7 “Структуры, из которых можно сконструировать любую программу”
Рис.8 “Базовый элемент SADT и его декомпозиция”

Object-oriented programming

Автор начинает с обсуждения, а что же это такое. Сначала он рассматривает стандартные, но слишком общие или неточные ответы, навроде

  • Комбинация данных и функций
  • Метод моделирования реального мира
Рис.9 “Что такое объектно-ориентированное программирование”

Functional Programming

Эта парадигма программирования основана на теории лямбда исчислений, которую в 30х годах 20 века изобрел Алонзо Чёрч для формализации и анализа понятия вычислимости. Основной особенностью функциональной парадигмы является то, что переменные здесь иммутабельные. Что это значит для архитектуры?

--

--

Director of digital ecosystem development department at Tinkoff. Bachelor at applied math, Master at system analysis, Postgraduate studies at economics.

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Alexander Polomodov

Alexander Polomodov

Director of digital ecosystem development department at Tinkoff. Bachelor at applied math, Master at system analysis, Postgraduate studies at economics.