
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,175