Разделы презентаций


Как переписать приложение с нуля и не потерпеть фиаско Емельянов

Содержание

О себе7 лет в Android-разработкеВ ЦФТ с 2013 г.Разработал более десятка проектов

Слайды и текст этой презентации

Слайд 1Как переписать приложение с нуля
и не потерпеть фиаско
Емельянов Михаил,
Android Team

Lead

Как переписать приложение с нуляи не потерпеть фиаскоЕмельянов Михаил,Android Team Lead

Слайд 2О себе
7 лет в Android-разработке
В ЦФТ с 2013 г.
Разработал более

десятка проектов

О себе7 лет в Android-разработкеВ ЦФТ с 2013 г.Разработал более десятка проектов

Слайд 3О чем буду говорить
1. С чего все начиналось
2. Как набирали

команду и решали задачи
3. Оцениваем масштаб разработки
4. Проблемы с архитектурой

и технологиями

5. Какая польза от Unit-тестов и других инструментов

6. Не успевали к срокам, что делать

О чем буду говорить1. С чего все начиналось2. Как набирали команду и решали задачи3. Оцениваем масштаб разработки4.

Слайд 4О чем буду говорить
1. С чего все начиналось
2. Как набирали

команду и решали задачи
3. Оцениваем масштаб разработки
4. Проблемы с архитектурой

и технологиями

5. Какая польза от Unit-тестов и других инструментов

6. Не успевали к срокам, что делать

О чем буду говорить1. С чего все начиналось2. Как набирали команду и решали задачи3. Оцениваем масштаб разработки4.

Слайд 5О чем буду говорить
1. С чего все начиналось
2. Как набирали

команду и решали задачи
3. Оцениваем масштаб разработки
4. Проблемы с архитектурой

и технологиями

5. Какая польза от Unit-тестов и других инструментов

6. Не успевали к срокам, что делать

О чем буду говорить1. С чего все начиналось2. Как набирали команду и решали задачи3. Оцениваем масштаб разработки4.

Слайд 6О чем буду говорить
1. С чего все начиналось
2. Как набирали

команду и решали задачи
3. Оцениваем масштаб разработки
4. Проблемы с архитектурой

и технологиями

5. Какая польза от Unit-тестов и других инструментов

6. Не успевали к срокам, что делать

О чем буду говорить1. С чего все начиналось2. Как набирали команду и решали задачи3. Оцениваем масштаб разработки4.

Слайд 7О чем буду говорить
1. С чего все начиналось
2. Как набирали

команду и решали задачи
3. Оцениваем масштаб разработки
4. Проблемы с архитектурой

и технологиями

5. Какая польза от Unit-тестов и других инструментов

6. Не успевали к срокам, что делать

О чем буду говорить1. С чего все начиналось2. Как набирали команду и решали задачи3. Оцениваем масштаб разработки4.

Слайд 8О чем буду говорить
1. С чего все начиналось
2. Как набирали

команду и решали задачи
3. Оцениваем масштаб разработки
4. Проблемы с архитектурой

и технологиями

5. Какая польза от Unit-тестов и других инструментов

6. Не успевали к срокам, что делать

О чем буду говорить1. С чего все начиналось2. Как набирали команду и решали задачи3. Оцениваем масштаб разработки4.

Слайд 9С чего все началось?

С чего все началось?

Слайд 10Бизнес поставил задачу
Новый дизайн
Масштабироваться
Увеличить скорость разработки фич
Улучшить стабильность

Бизнес поставил задачуНовый дизайнМасштабироватьсяУвеличить скорость разработки фичУлучшить стабильность

Слайд 11Бизнес поставил задачу
Новый дизайн
Масштабироваться
Увеличить скорость разработки фич
Улучшить стабильность

Бизнес поставил задачуНовый дизайнМасштабироватьсяУвеличить скорость разработки фичУлучшить стабильность

Слайд 12Бизнес поставил задачу
Новый дизайн
Масштабироваться
Увеличить скорость разработки фич
Улучшить стабильность

Бизнес поставил задачуНовый дизайнМасштабироватьсяУвеличить скорость разработки фичУлучшить стабильность

Слайд 13Бизнес поставил задачу
Новый дизайн
Масштабироваться
Увеличить скорость разработки фич
Улучшить стабильность

Бизнес поставил задачуНовый дизайнМасштабироватьсяУвеличить скорость разработки фичУлучшить стабильность

Слайд 14Но не все так просто…

Но не все так просто…

Слайд 15Проблема №1
Архитектура

Проблема №1Архитектура

Слайд 16?
MVPVM?

?MVPVM?

Слайд 17?
MVPVM?

?MVPVM?

Слайд 20Проблема №2
Ресурсы и стили

Проблема №2Ресурсы и стили

Слайд 23Проблема №3
Рефакторинг

Проблема №3Рефакторинг

Слайд 24Смотрим покрытие тестами

Смотрим покрытие тестами

Слайд 26В результате получили

В результате получили

Слайд 27Монолитный проект – сложно масштабироваться
Нет архитектуры – кругом спагетти-код
Долгий рефакторинг

– тонем в техдолге
Нет тестов – делаем одно, ломаем другое
Невозможен

– «просто» редизайн
Монолитный проект – сложно масштабироватьсяНет архитектуры – кругом спагетти-кодДолгий рефакторинг – тонем в техдолгеНет тестов – делаем

Слайд 28Монолитный проект – сложно масштабироваться
Нет архитектуры – кругом спагетти-код
Долгий рефакторинг

– тонем в техдолге
Нет тестов – делаем одно, ломаем другое
Невозможен

– «просто» редизайн
Монолитный проект – сложно масштабироватьсяНет архитектуры – кругом спагетти-кодДолгий рефакторинг – тонем в техдолгеНет тестов – делаем

Слайд 29Монолитный проект – сложно масштабироваться
Нет архитектуры – кругом спагетти-код
Долгий рефакторинг

– тонем в техдолге
Нет тестов – делаем одно, ломаем другое
Невозможен

– «просто» редизайн
Монолитный проект – сложно масштабироватьсяНет архитектуры – кругом спагетти-кодДолгий рефакторинг – тонем в техдолгеНет тестов – делаем

Слайд 30Монолитный проект – сложно масштабироваться
Нет архитектуры – кругом спагетти-код
Долгий рефакторинг

– тонем в техдолге
Нет тестов – делаем одно, ломаем другое
Невозможен

– «просто» редизайн
Монолитный проект – сложно масштабироватьсяНет архитектуры – кругом спагетти-кодДолгий рефакторинг – тонем в техдолгеНет тестов – делаем

Слайд 31Монолитный проект – сложно масштабироваться
Нет архитектуры – кругом спагетти-код
Долгий рефакторинг

– тонем в техдолге
Нет тестов – делаем одно, ломаем другое
Невозможен

– «просто» редизайн
Монолитный проект – сложно масштабироватьсяНет архитектуры – кругом спагетти-кодДолгий рефакторинг – тонем в техдолгеНет тестов – делаем

Слайд 33Набираем команду, решаем задачи

Набираем команду, решаем задачи

Слайд 34Какая структура проекта будет?

Какая структура проекта будет?

Слайд 35Паттерн проектирования?

Паттерн проектирования?

Слайд 36Прошло много часов, ни одного решения

Прошло много часов, ни одного решения

Слайд 41Критерии эффективной команды

Критерии эффективной команды

Слайд 42Единомышленники
1 tech lead
Прагматичный выбор технологий
Уровень знаний не ниже среднего
1 команда

= 4-5 человек

Единомышленники1 tech leadПрагматичный выбор технологийУровень знаний не ниже среднего1 команда = 4-5 человек

Слайд 43Единомышленники
1 tech lead
Прагматичный выбор технологий
Уровень знаний не ниже среднего
1 команда

= 4-5 человек

Единомышленники1 tech leadПрагматичный выбор технологийУровень знаний не ниже среднего1 команда = 4-5 человек

Слайд 44Единомышленники
1 tech lead
Прагматичный выбор технологий
Уровень знаний не ниже среднего
1 команда

= 4-5 человек

Единомышленники1 tech leadПрагматичный выбор технологийУровень знаний не ниже среднего1 команда = 4-5 человек

Слайд 45Единомышленники
1 tech lead
Прагматичный выбор технологий
Уровень знаний не ниже среднего
1 команда

= 4-5 человек

Единомышленники1 tech leadПрагматичный выбор технологийУровень знаний не ниже среднего1 команда = 4-5 человек

Слайд 46Единомышленники
1 tech lead
Прагматичный выбор технологий
Уровень знаний не ниже среднего
1 команда

= 4-5 человек

Единомышленники1 tech leadПрагматичный выбор технологийУровень знаний не ниже среднего1 команда = 4-5 человек

Слайд 47Разбираем приложение по кирпичикам

Разбираем приложение по кирпичикам

Слайд 481 фича = 1 стикер
~ 5 месяцев
Оценка на 1 чел

(S, M, L, XL),
участвует вся команда
Считаем, отдаем бизнесу

1 фича = 1 стикер~ 5 месяцевОценка на 1 чел (S, M, L, XL),участвует вся командаСчитаем, отдаем

Слайд 49Строим архитектуру

Строим архитектуру

Слайд 50Требования к архитектуре
Масштабируется
Бизнес-логика отделена от представления и данных
Тестируется
Не зависит от

реализации: UI, библиотек, платформы
Простая в понимании и применении

Требования к архитектуреМасштабируетсяБизнес-логика отделена от представления и данныхТестируетсяНе зависит от реализации: UI, библиотек, платформыПростая в понимании и

Слайд 51
Interactor
InteractorImpl

Repository
Entity
RepositoryImpl

DataSource
DataSourceImpl
EntityConverter
Model
Presenter

View
Activity
Fragment

Router
RouterImpl

InteractorInteractorImplRepositoryEntityRepositoryImplDataSourceDataSourceImplEntityConverterModelPresenterViewActivityFragmentRouterRouterImpl

Слайд 52Но мы наступили на грабли :(

Но мы наступили на грабли :(

Слайд 53Грабли №1
Бизнес-логика == представлению

Грабли №1Бизнес-логика == представлению

Слайд 58
Repository
Entity

RepositoryEntity

Слайд 65Грабли №2
Бойлерплейт с конвертерами

Грабли №2Бойлерплейт с конвертерами

Слайд 66RepositoryImpl

DataSource
DataSourceImpl
EntityConverter
Model

RepositoryImplDataSourceDataSourceImplEntityConverterModel

Слайд 71Entity
RepositoryImpl

DataSource
DataSourceImpl
EntityConverter
Model

EntityRepositoryImplDataSourceDataSourceImplEntityConverterModel

Слайд 72Entity
RepositoryImpl

DataSource
DataSourceImpl

Repository

EntityRepositoryImplDataSourceDataSourceImplRepository

Слайд 73Выбираем технологии

Выбираем технологии

Слайд 74Не тратить время на изобретение велосипедов

Не тратить время на  изобретение велосипедов

Слайд 77Dagger2
Room

Dagger2Room

Слайд 78“Если хочешь рассмешить Бога, расскажи ему о своих планах”

“Если хочешь рассмешить Бога,  расскажи ему о своих планах”

Слайд 79Проблема №1
Dagger2

Проблема №1Dagger2

Слайд 86Проблема №2
Rx Hell

Проблема №2Rx Hell

Слайд 91Еще один пример

Еще один пример

Слайд 93Правило
«Логика использования технологии
не должна быть сложнее
логики решения задачи»

Правило«Логика использования технологии не должна быть сложнее логики решения задачи»

Слайд 94Тесты нам помогают

Тесты нам помогают

Слайд 95Не принимаем код без Unit-тестов

Не принимаем код без Unit-тестов

Слайд 98В одной упряжке с дизайнерами

В одной упряжке с дизайнерами

Слайд 102Не попадаем в дедлайн

Не попадаем в дедлайн

Слайд 103Строим итеративный
план спринтов

Строим итеративныйплан спринтов

Слайд 105Даты

Даты

Слайд 106Задачи

Задачи

Слайд 108Но команде прозрачно и бизнесу спокойно

Но команде прозрачно  и бизнесу спокойно

Слайд 109Эпилог
“Если головоломка не сложилась,
и тебе уже не собрать пазлы
— начни сначала”© Death Note

Эпилог“Если головоломка не сложилась,и тебе уже не собрать пазлы— начни сначала”© Death Note

Слайд 110Переписать приложение с нуля
и не потерпеть фиаско – можно!
Но

для этого…

Переписать приложение с нуля и не потерпеть фиаско – можно!Но для этого…

Слайд 111Дизайнеры могут помочь, для этого есть все инструменты
Задать вопрос –

«А нужно ли?»
Собрать команду единомышленников и оценить масштаб
Построить архитектуру

решающую задачи бизнеса

Выбрать технологии, основываясь на опыте команды

Использовать Unit-тесты, они сэкономят время на отладке

Дизайнеры могут помочь, для этого есть все инструментыЗадать вопрос – «А нужно ли?»Собрать команду единомышленников и оценить

Слайд 112Дизайнеры могут помочь, для этого есть все инструменты
Задать вопрос –

«А нужно ли?»
Собрать команду единомышленников и оценить масштаб
Построить архитектуру

решающую задачи бизнеса

Выбрать технологии, основываясь на опыте команды

Использовать Unit-тесты, они сэкономят время на отладке

Дизайнеры могут помочь, для этого есть все инструментыЗадать вопрос – «А нужно ли?»Собрать команду единомышленников и оценить

Слайд 113Дизайнеры могут помочь, для этого есть все инструменты
Задать вопрос –

«А нужно ли?»
Собрать команду единомышленников и оценить масштаб
Построить архитектуру

решающую задачи бизнеса

Выбрать технологии, основываясь на опыте команды

Использовать Unit-тесты, они сэкономят время на отладке

Дизайнеры могут помочь, для этого есть все инструментыЗадать вопрос – «А нужно ли?»Собрать команду единомышленников и оценить

Слайд 114Дизайнеры могут помочь, для этого есть все инструменты
Задать вопрос –

«А нужно ли?»
Собрать команду единомышленников и оценить масштаб
Построить архитектуру

решающую задачи бизнеса

Выбрать технологии, основываясь на опыте команды

Использовать Unit-тесты, они сэкономят время на отладке

Дизайнеры могут помочь, для этого есть все инструментыЗадать вопрос – «А нужно ли?»Собрать команду единомышленников и оценить

Слайд 115Дизайнеры могут помочь, для этого есть все инструменты
Задать вопрос –

«А нужно ли?»
Собрать команду единомышленников и оценить масштаб
Построить архитектуру

решающую задачи бизнеса

Выбрать технологии, основываясь на опыте команды

Использовать Unit-тесты, они сэкономят время на отладке

Дизайнеры могут помочь, для этого есть все инструментыЗадать вопрос – «А нужно ли?»Собрать команду единомышленников и оценить

Слайд 116Дизайнеры могут помочь, для этого есть все инструменты
Задать вопрос –

«А нужно ли?»
Собрать команду единомышленников и оценить масштаб
Построить архитектуру

решающую задачи бизнеса

Выбрать технологии, основываясь на опыте команды

Использовать Unit-тесты, они сэкономят время на отладке

Дизайнеры могут помочь, для этого есть все инструментыЗадать вопрос – «А нужно ли?»Собрать команду единомышленников и оценить

Слайд 117Нам это удалось, чего и вам желаем!

Нам это удалось, чего и вам желаем!

Слайд 118Спасибо 
Емельянов Михаил,
m.emeljanov@cft.ru

Спасибо Емельянов Михаил,m.emeljanov@cft.ru

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика