К основному содержимому
Devfest 2020
Devfest · 17 октября 2020

Современные подходы к разработке софта

С примерами из жизни крупного финтеха

/ Современные подходы к разработке софта · Devfest 2020

Содержание слайдов

  1. 1. Современные подходы к разработке софта

    С примерами из жизни крупного финтеха

  2. 2. О чём поговорим

    Слои современной разработки

    Где «в лоб» работает

    Требования, домен, Clean Architecture

    Хранилища, NoSQL, microservices

    Delivery, infra, QA, security

  3. 3. 01. Разработка «в лоб»

    Когда работает и когда ломается

  4. 4. Idea → Dev → Deploy

    Линейный цикл и боль

    Бизнес хочет «как у соседа»

    Требования обгоняют код

    Деплой остаётся событием

    Мало тестов — высокий риск

  5. 5. Когда «в лоб» допустимо

    Не везде нужен Clean Architecture

    Прототипы и MVP с горизонтом 2–4 недели

    RnD-эксперименты с гипотезами

    Скрипты автоматизации, one-off задачи, промо-страницы

    Когда поддержка заведомо дешевле выкидывания

  6. 6. 02. Разработка с проектированием

    Когда инвестиции в дизайн окупаются

  7. 7. Что добавляет проектирование

    Слои осмысленности

    Сбор и формализация требований

    Use cases и сценарии использования

    Доменная модель и язык

    Паттерны, фреймворки и ADR как слой решений

  8. 8. Слои Clean Architecture

    Зависимости направлены внутрь

    Entities — бизнес-объекты и инварианты

    Use Cases — сценарии работы приложения

    Interface Adapters — контроллеры, презентеры

    Frameworks & Drivers + Dependency Rule

  9. 9. 03. Эволюция данных

    От файловой системы до NoSQL и Data Mesh

  10. 10. Эволюция хранилищ

    Новый класс задач — новый storage

    FS — иерархия и блобы

    RDBMS — ACID, SQL

    Object storage / DWH

    Big Data / NoSQL

  11. 11. Семейства NoSQL

    Движок под access pattern

    Key-Value — быстрый lookup

    Column-Family — широкие записи

    Document — гибкая схема

    Graph — связи и обходы

  12. 12. 04. Архитектура систем

    Монолит → SOA → Microservices

  13. 13. Монолит → микросервисы

    Новые решения, новая сложность

    Монолит — простой deploy

    SOA — тяжёлый middleware

    Microservices — сложнее ops

    DDD / 12-factor задают границы

  14. 14. 05. Доставка и инфраструктура

    От FTP к DevOps и IaaC

  15. 15. Эволюция доставки

    От uploads к pipeline

    FTP upload — молись

    Fabric / Capistrano — скрипты

    Bamboo / TeamCity — централизованный CI

    GitLab CI — pipeline ownership

  16. 16. Эволюция инфраструктуры

    От железа к коду

    Bare metal — ручная сборка

    VMware / Hyper-V — плотность

    IaaS / PaaS — облака

    Kubernetes — infra как продукт

  17. 17. 06. Качество, безопасность, данные

    Что нельзя пропустить

  18. 18. Shift-left + пирамида

    Качество встраивается

    Unit — быстрый base

    Integration / contract — границы

    E2E — критичные сценарии

    Canary, shadow, chaos

  19. 19. Security в CI

    DevSecOps by design

    SAST / DAST в CI

    SCA — зависимости и CVE

    Secrets — Vault, KMS

    Threat modeling + least privilege

  20. 20. Data Lake → Mesh

    Данные как продукт

    Warehouse — structured, slow

    Lake — schema-on-read

    Lakehouse — гибрид

    Mesh — self-serve product

  21. 21. Источники

    Architecture, data, DevOps

    Clean Architecture + Microservices

    Domain-Driven Design

    Designing Data-Intensive Applications

    Accelerate (DORA) + Data Mesh

  22. 22. Спасибо!

    polomodov.tech

    Все слайды и ссылки — в Telegram-канале

    Александр Поломодов, Technical Director & Fellow, Т-Технологии

    @book_cube