1 of 97

1

2 of 97

Дарья Пушкарская

  • Frontend, Tinkoff.ru
  • Автор школы webheroschool.ru
  • Работала в 2GIS и Mail.ru

2

3 of 97

Дарья Пушкарская

  • Спикер
  • Пишу в блогах и телеграмм-каналах
  • Делюсь мотивацией и вдохновением
  • Вношу вклад в образование

3

4 of 97

Время о**фигительных историй

4

5 of 97

5

6 of 97

6

7 of 97

7

8 of 97

8

9 of 97

9

10 of 97

Я из Казахстана

10

11 of 97

Усть-Каменогорск

11

12 of 97

2GIS

12

13 of 97

Mail.ru

13

14 of 97

Tinkoff.ru

14

15 of 97

15

16 of 97

Полезные ссылки

  • webheropublick
    • Телеграмм-канал про изучение фронтенда
  • iteventsru
    • Анонсы всех офлайн и онлайн IT-мероприятий русскоязычного пространства
  • Привем докладов по фронтенду
  • Work-life balance
    • Авторский телеграмм-канал про баланс между работой и жизнью

16

17 of 97

Tinkoff.ru Open Source

17

18 of 97

18

19 of 97

19

20 of 97

Tinkoff.ru

20

21 of 97

21

22 of 97

22

23 of 97

23

24 of 97

24

25 of 97

25

26 of 97

Проблема

Нет единого пространства, которое объединяло бы все заказы и покупки совершенные в разных приложениях tinkoff.ru.

26

27 of 97

Решение

Сделать раздел «Мои заказы» в личном кабинете Tinkoff.ru.

27

28 of 97

28

29 of 97

Этапы разработки компонента

  1. Постановка и спецификация задачи.
  2. Разработка дизайна.
  3. Разработка компонента.
  4. Тестирование.

29

30 of 97

  • Постановка и спецификация задачи.
  • Разработка дизайна.
  • Разработка компонента.
  • Тестирование.

30

31 of 97

  1. Спецификация

31

32 of 97

  • Спецификация

Должна ли разработка участвовать?

32

33 of 97

Спецификация задачи

  • Характеристики, SMART, TOTE…
  • “Скетч” того, как должен в итоге выглядеть компонент и работать
    • Возможно текстом, но желательно буквально наброски от руки
    • Схемы взаимодействия и получения данных

33

34 of 97

  • Характеристики, SMART, TOTE…
  • Скетч” того, как должен в итоге выглядеть компонент и работать
    • Возможно текстом, но желательно буквально наброски от руки
    • Схемы взаимодействия и получения данных

34

35 of 97

35

36 of 97

Что может произойти, если в этом этапе не будет участвовать разработка?

36

37 of 97

Возможные проблемы

  • Будет описан функционал, которые невозможно реализовать.
  • В дизайн пойдет “скетч”, в котором не учтены технические ограничения.
  • Будет выбран не оптимальный путь реализации.
  • Неверно оценены сроки реализации.
  • Создание конфликтных ситуаций.

37

38 of 97

Маленькая задача, для реализации которой нужно переделать все приложение?

38

39 of 97

39

40 of 97

Разработка должна участвовать на этапе спецификации задачи

40

41 of 97

Вопросы, на которые нужно ответить совместно

  • Возможно ли это реализовать?
  • Как можно это реализовать?
  • Сколько это займет времени?
  • Оптимальный ли выбран путь реализации?
  • Что стоит учесть при создании дизайна?
  • Что будет происходить с компонентом в будущем?

41

42 of 97

42

43 of 97

43

44 of 97

2. Разработка дизайна

44

45 of 97

2. Разработка дизайна

Должна ли разработка участвовать?

45

46 of 97

46

47 of 97

47

48 of 97

48

49 of 97

49

50 of 97

50

51 of 97

51

52 of 97

52

53 of 97

53

54 of 97

Что может произойти, если в этом этапе не будет участвовать разработка?

54

55 of 97

Возможные проблемы

  • Выбраны решения, с которыми могут быть технические сложности в будущем.
  • Создан дизайн без учета технических ограничений.
  • Создан дизайн, для реализации которого потребуются “дорогие” доработки.
  • Не учтены пограничные кейсы.
  • Будет создан компонент, дублирующий функционал.
  • Будет создан дубль компонент со схожей логикой.
  • В дизайне не учтено отображение реальных данных.

55

56 of 97

В дизайне выглядело хорошо, а в реальности что-то пошло не так?

56

57 of 97

57

58 of 97

Вопросы, на которые нужно ответить совместно

  • Возможно ли это реализовать технически?
  • Обойдет ли нам реализация “дорого”? Нужно ли упрощать?
  • Есть ли уже готовые компоненты для переиспользования?
  • Как будут выглядеть и реализованы пограничные кейсы в текущем дизайне?
  • Учитывает ли текущий дизайн планы на будущее развитие компонента?

58

59 of 97

59

60 of 97

60

61 of 97

3. Разработка компонента

61

62 of 97

3. Разработка компонента

Последствия

62

63 of 97

63

64 of 97

Этапы разработки

  1. Получение данных и агрегация данных
  2. Форматирование данных для отображения
  3. Создание и использование компонента

64

65 of 97

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

65

66 of 97

66

67 of 97

Этапы разработки

  • Получение данных и агрегация данных
  • Форматирование данных для отображения
  • Создание и использование компонента

67

68 of 97

68

69 of 97

Все хорошо

69

70 of 97

А можно подключить еще 100500 6 приложений?

70

71 of 97

В результате

  • Теряем производительность из-за числа запросов.
  • Мы не заложились на масштабируемость из-за незнания контекста.
  • Нервничаем и конфликтуем.

71

72 of 97

72

gateway api

73 of 97

73

74 of 97

Этапы разработки

  • Получение данных и агрегация данных
  • Форматирование данных для отображения
  • Создание и использование компонента

74

75 of 97

75

76 of 97

76

77 of 97

77

78 of 97

78

79 of 97

79

80 of 97

Этапы разработки

  • Получение данных и агрегация данных
  • Форматирование данных для отображения
  • Создание и использование компонента

80

81 of 97

81

82 of 97

Все проблемы с этапа дизайна

82

83 of 97

83

84 of 97

А можно использовать в другом 100500 других приложение?

84

85 of 97

85

86 of 97

Tinkoff UI

86

87 of 97

87

88 of 97

88

89 of 97

Казалось всего-лишь карточка...

89

90 of 97

В результате:

  • Отдельный МС.
  • Конфиг в админке для регулировки МС.
  • Вспомогательные пакеты с методами обработки данных и с бизнес-логикой.
  • Отдельный пакет-компонент из кита карточки.
  • Специально выстроенные процессы для интеграции новых приложений.
  • Возможность безболезненно и быстро интегрировать любое количество приложений.
  • Учтены кейсы для масштабирования и переиспользования.
  • Дизайн разработан в соответствии с техническими ограничениями и планами на будущее.
  • Все счастливы.

90

91 of 97

91

92 of 97

Что делать, чтобы создать себе проблемы в будущем?

  • Не участвовать в спецификации задач.
  • Не проводить ревью дизайна, а сразу брать в работу.
  • Не общаться с бизнесом и дизайном.
  • Не интересоваться планами продукта на будущее.
  • Не интересоваться бизнес-задачами и целями.
  • Не думать о масштабировании и других продуктах.
  • Думать, что разработчик не должен вникать в бизнес.

92

93 of 97

93

94 of 97

Разработка должна участвовать на всех этапах создания компонента продукта.

94

95 of 97

Что дальше?

95

96 of 97

Дарья Пушкарская

96

97 of 97

97