Microsoft To-Do
Разбор Полётов
👋 Меня зовут Алексей
Senior Software Development Engineer
4 years building To-Do Web app
Спасибо
Организаторам
Зрителям
Оле и Диме
Паблику "Мемы про котов (по ржать)"
Котам
All opinions are mine
and do not represent opinions of my employer
Самые важные вопросы
А сколько ты зарабатываешь?
А вас заставляют работать на винде?
А правда, что можно получить MacBook?
Нет
Да
Microsoft To-Do
Простой список задач
Нативные приложения + веб клиент
iOS, Android, Mac, Windows
React
Redux
Redux-actions
ES6 + TypeScript
eslint plugins
ImmutableJS
Куча самописных библиотек (NIH)
Reselect
Технологии
Толстый клиент
Сложная система
Телеметрия
Тестируемый конечный автомат (FSM)
Работает в офлайн-режиме по-умолчанию
Дельта-CRDT синхронизация
Целостность данных поддерживается на клиенте
Интегрировано в Outlook
Сложные сложности
Координация нескольких вкладок
-
Бизнес-контекст
-
Инженерные истории
-
Архитектурка
Про Бизнес
Июнь 2015: Microsoft покупает Wunderlist
Март 2016: Я прихожу пилить To-Do
2016: Фигачим релизную версию
2017: Фи значит фичи
2018: К = Качество
2019: Передаем проект на поддержку*
2020: Добро пожаловать в GitHub
Краткое содержимое предыдущих эпизодов
Лёха, хватит читать слайды...
Попей водически
Ты говоришь сам с собой, кек
Microsoft покупает Wunderlist
Я прихожу пилить To-Do
Фигачим релизную версию 📦
Фи значит фичи 🐞
К = Качество 🍉
Передаем проект на поддержку* 😱
Успешный успех?
За это время...
Сменилось 3 директора
5 реоргов
От оригинальной команды осталось 30%
Сменилось 3 CVP
Родилось 9(?) детей
Про разработку
Команда Шрёдингера
6 ± 4 человека
ClojureScript
Зачем, если можно сделать так же на JS?
NIH = Not Invented Here
Backend и Compliance
Независимые компоненты
Часовые пояса
Авторизация
Производительность
Архитектурные практики
Архитектуровое
Миф 1:
Централизованное принятие решений заранее
Реальность 1:
Контроль сложности и направления развития в моменте
Миф 2:
Эволюция сама всё порешает
Реальность 2:
Эволюция это медленно.
Направленное изменение = инженерия
Миф 3:
Для управления нужны сложные процессы
Реальность 3:
Базовые практики дадут 80% результата
Миф 4:
Архитектура это про технологии
Реальность 4:
Архитектура это про организацию и коммуникации
Повторяйте за мной:
Риски
Контроль через стандартизацию
Buy vs Build
Критические атрибуты качества
Я буду говорить ротом
Безопасность
Люди
Ручные Инструменты
Список "проблем" с оценкой затрат, выгод и частоты проявления
ADR - Architecture Decision Records
Список издержек и "костылей" (trade-offs & workarounds)
Чеклисты
В порядке полезность/цена внедрения
Внутренний обмен знаниями
C4 + data flow диаграмма
А где про JS?
Microsoft To-Do
Web Architecture
Microsoft To-Do
React Practices
Спасибо!
Вопросы и обсуждение в Zoom
Microsoft To-Do: Разбор Полётов
By Alexey Migutsky
Microsoft To-Do: Разбор Полётов
HolyJS 2021
- 1,114