cLean Architecutre



cLean Architecutre

3 4


happydev-2013-slides

Slides for happydev 2013 (architecture)

On Github niquola / happydev-2013-slides

cLean Architecutre

Created by niquola / @niquola hospital-systems/waveaccess 2013 happydev 2013

Teamlead @ hospital-systems

github/niquola / @niquola

Что такое архитектура?

Архитектура

это принятые ключевые решения

Решение = компромис

Основная задача дизайна уменьшить боль, а не увеличить количество ништяков! Нет хорошей или плохой архитектуры - она может быть обоснованной или нет!

Евгений Кривошеев

Диалектика

Движение и развитие в природе, обществе и мышлении обусловлено раздвоением единого на взаимопроникающие противоположности и разрешением возникающих противоречий между ними через борьбу

Часто забывают - можно не выбирать

good architecture maximizes the number of decisions not made

Robert Martin (Uncle Bob)

Mы часть механизма

System Thinking

Design is taking things apart and then compose

Rich Hickey

Bounded Contexts & Aggregates

Domain Driven Design

Сложная предметная область?

ПРЕЖДЕВРЕММЕННОЕ МОДЕЛИРОВАНИЕ!

Behaviour Driven

Важнее то как система себя ведет (внешние требования) нежели то как она устроена (внутренние требования)

Top-Down & Bottom-Up

  • Придумать модель и вывести приложение
  • Вывести из приложения модель

Use Case

Последовательность взаимодействий с системой,

направленная на достижение цели

             
              iam.tap do |s|
                confirmation_key = nil

                s.listen :sign_up do |ev|
                  confirmation_key = ev.confirmation_key
                end

                s.sign_up!(email, password)
                s.confirm!(confirmation_key)

                session_key = s.sign_in!(email, password)
                s.session_active?(session_key).should be_true

                s.sign_out!(session_key)
              end
             
           

Итак: Use Case Driven

  • Use Case
  • Prototype
  • Specification
  • Implementation
  • Refactoring to deeper insight

Закон Конвея & Кайдзен

Dankeschön