How to keep the software soft?Инженерные практики, способствующие созданию качественного продукта
A former member of the django channels maintenance team. A former member of the dry-python team. DDD & XP enthusiast.
https://github.com/proofit404/
Одна из основных задач во время разработки программного обеспечения — это минимизация сроков. Сроков выхода новых фич и исправления багов. Принимаемые нами решения, такие как выбор Web-фреймворка, базы данных, синхронного или асинхронного подхода, влияют на это минимально. Основные проблемы создаём мы сами, отвязывая код нашего продукта от предметной области. Мы перестаём мыслить системно, потому что весь день смотрим на хитросплетения HTTP-запросов с ActiveRecord. Игнорируя необходимость грамотного структурировать проект, мы закладываем бомбу технического долга, которая может рвануть в любой момент.
На самом деле это не мы такие плохие и ленивые, не хотим читать умных книжек по Domain Driven Design. При всём желании грамотно построить сервис на абстрактных Django или Rails очень тяжело. Инструменты как будто сопротивляются изменению привычных подходов "тяп-ляп и в production".
Я покажу, как удобно строить высокоуровневую архитектуру приложения. Как программировать на языке предметной области. Как это позволяет автоматизировать логирование и упростить отладку распределённых систем. И, самое главное, как это позволяет нам адаптироваться к постоянно меняющимся требованиям заказчиков.
Примеры будут на dry-python. Но доклад не про python, а про ценные общие подходы, которые применимы к другим языкам программирования.
Любителям DDD, BDD, TDD и *DD быть обязательно!