![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/4156600/desktop.jpg)
Microsoft To-Do
Разбор Полётов
👋 Меня зовут Алексей
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/2617784/Microsoft_symbol_2012.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/4595790/logo0.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077393/GitHub-Mark-64px.png)
![](https://marketplace.canva.com/MAB0g7ZqQow/1/thumbnail/canva-twitter-social-media-icon-MAB0g7ZqQow.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077409/GitHub_Logo.png)
Senior Software Development Engineer
4 years building To-Do Web app
Спасибо
Организаторам
Зрителям
Оле и Диме
Паблику "Мемы про котов (по ржать)"
Котам
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077934/2021-11-03_13.54.23.jpg)
All opinions are mine
and do not represent opinions of my employer
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077927/2021-11-03_13.54.00.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9078108/рыбы.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/2617784/Microsoft_symbol_2012.png)
Самые важные вопросы
А сколько ты зарабатываешь?
А вас заставляют работать на винде?
А правда, что можно получить MacBook?
Нет
Да
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077972/2021-11-03_16.07.14.jpg)
Microsoft To-Do
Простой список задач
Нативные приложения + веб клиент
iOS, Android, Mac, Windows
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9078566/Screen_Shot_2021-11-03_at_7.16.44_PM.png)
React
Redux
Redux-actions
ES6 + TypeScript
eslint plugins
ImmutableJS
Куча самописных библиотек (NIH)
Reselect
Технологии
Толстый клиент
Сложная система
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077916/2021-11-03_13.52.43.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9078373/IMAGE_2021-11-03_17_57_16.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/4616065/Microsoft_To-Do_icon.png)
Телеметрия
Тестируемый конечный автомат (FSM)
Работает в офлайн-режиме по-умолчанию
Дельта-CRDT синхронизация
Целостность данных поддерживается на клиенте
Интегрировано в Outlook
Сложные сложности
Координация нескольких вкладок
-
Бизнес-контекст
-
Инженерные истории
-
Архитектурка
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077968/2021-11-03_16.06.56.jpg)
Про Бизнес
Июнь 2015: Microsoft покупает Wunderlist
Март 2016: Я прихожу пилить To-Do
2016: Фигачим релизную версию
2017: Фи значит фичи
2018: К = Качество
2019: Передаем проект на поддержку*
2020: Добро пожаловать в GitHub
Краткое содержимое предыдущих эпизодов
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/4616066/Wunderlist_icon.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077393/GitHub-Mark-64px.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/4616065/Microsoft_To-Do_icon.png)
Лёха, хватит читать слайды...
Попей водически
Ты говоришь сам с собой, кек
Microsoft покупает Wunderlist
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077918/2021-11-03_13.53.04.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/4616066/Wunderlist_icon.png)
Я прихожу пилить To-Do
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077973/2021-11-03_16.07.19.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/4616065/Microsoft_To-Do_icon.png)
Фигачим релизную версию 📦
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077962/2021-11-03_16.06.33.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077967/2021-11-03_16.06.53.jpg)
Фи значит фичи 🐞
К = Качество 🍉
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077948/2021-11-03_13.55.50.jpg)
Передаем проект на поддержку* 😱
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077932/2021-11-03_13.54.15.jpg)
Успешный успех?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9078309/Screenshot_2020-03-10_at_15.36.09.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9078428/IMAGE_2021-11-03_18_20_28.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9078170/MAU_data_Copy.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9078397/Screen_Shot_2021-11-03_at_6.03.56_PM.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9078393/IMAGE_2021-11-03_18_02_25.jpg)
За это время...
Сменилось 3 директора
5 реоргов
От оригинальной команды осталось 30%
Сменилось 3 CVP
Родилось 9(?) детей
Про разработку
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077917/2021-11-03_13.52.48.jpg)
Команда Шрёдингера
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077919/2021-11-03_13.53.10.jpg)
6 ± 4 человека
ClojureScript
Зачем, если можно сделать так же на JS?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077947/2021-11-03_13.55.26.jpg)
NIH = Not Invented Here
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9078570/Screen_Shot_2021-11-03_at_7.14.58_PM.png)
Backend и Compliance
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077957/2021-11-03_16.06.11.jpg)
Независимые компоненты
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077965/2021-11-03_16.06.45.jpg)
Часовые пояса
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9078579/Screen_Shot_2021-11-03_at_7.22.01_PM.png)
Авторизация
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9078310/Auth_arhc.jpg)
Производительность
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077920/2021-11-03_13.53.14.jpg)
Архитектурные практики
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/6637449/maxresdefault.jpg)
Архитектуровое
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9078328/arch.jpeg)
Миф 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
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077393/GitHub-Mark-64px.png)
![](https://marketplace.canva.com/MAB0g7ZqQow/1/thumbnail/canva-twitter-social-media-icon-MAB0g7ZqQow.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/4595790/logo0.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/242036/images/9077952/2021-11-03_16.05.47.jpg)
Microsoft To-Do: Разбор Полётов
By Alexey Migutsky
Microsoft To-Do: Разбор Полётов
HolyJS 2021
- 1,046