$30 off During Our Annual Pro Sale. View Details »

CodeFest 2019. Алексей Катаев (Skyeng) — Рефакторинг: договариваемся, планируем, внедряем!

CodeFest
April 03, 2019

CodeFest 2019. Алексей Катаев (Skyeng) — Рефакторинг: договариваемся, планируем, внедряем!

Расскажу о том, как не допустить легаси в вашем новом проекте. Ха-ха, шутка! У вас ведь уже полно легаси и все нужно переписать с нуля? Я сам находился в этой ситуации много раз.

Поделюсь опытом, как перестать беспокоиться и начать рефакторить: договориться с менеджером, найти время, спланировать и подступиться наконец к вашему «как-то работает, лучше не трогать».

CodeFest

April 03, 2019
Tweet

More Decks by CodeFest

Other Decks in Technology

Transcript

  1. View Slide

  2. Перепишем с нуля?

    View Slide

  3. Перепишем с нуля?

    View Slide

  4. Рефакторинг:
    договариваемся,
    планируем, внедряем!
    Алексей Катаев
    4

    View Slide

  5. 5

    View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. ● Всего 25 минут
    9

    View Slide

  10. ● Всего 25 минут
    ● Никакого интерактива
    10

    View Slide

  11. ● Всего 25 минут
    ● Никакого интерактива
    ● Бонусы
    11

    View Slide

  12. 12

    View Slide

  13. ▢ Что делать с Глебом
    13

    View Slide

  14. ▢ Что делать с Глебом
    ▢ Как выстроить процесс рефакторинга
    14

    View Slide

  15. ▢ Что делать с Глебом
    ▢ Как выстроить процесс рефакторинга
    ▢ Как писать безупречный код
    15

    View Slide

  16. 16

    View Slide

  17. 17

    View Slide

  18. 18

    View Slide

  19. 19

    View Slide

  20. 20

    View Slide

  21. ● Скорость разработки
    21

    View Slide

  22. ● Скорость разработки
    ● Стабильность
    22

    View Slide

  23. ● Скорость разработки
    ● Стабильность
    ● Найм
    23

    View Slide

  24. Гэвин Кеннеди
    «Договориться можно обо всем!»

    View Slide

  25. ● 20% → 15%
    25

    View Slide

  26. ● 20% → 15%
    ● Изолированные костыли
    26

    View Slide

  27. View Slide

  28. ☑ Что делать с Глебом
    28

    View Slide

  29. ● Договариваться, а не жаловаться

    View Slide

  30. ● Договариваться, а не жаловаться
    ● Найти общий язык

    View Slide

  31. ● Договариваться, а не жаловаться
    ● Найти общий язык
    ● Конкретное предложение

    View Slide

  32. 32

    View Slide

  33. А что с критичными багами?
    33

    View Slide

  34. ☑ Что делать с Глебом
    ▢ Как выстроить процесс рефакторинга
    34

    View Slide

  35. ● Один раз в квартал
    35

    View Slide

  36. ✖ Один раз в квартал
    ● Включать в оценку
    36

    View Slide

  37. Сэм Харрис
    «Ложь»

    View Slide

  38. ✖ Один раз в квартал
    ✖ Включать в оценку
    ● Параллельно
    38

    View Slide

  39. 39

    View Slide

  40. 40

    View Slide

  41. 41

    View Slide

  42. 42

    View Slide

  43. ✖ Один раз в квартал
    ✖ Включать в оценку
    ☑ Параллельно
    43

    View Slide

  44. 44

    View Slide

  45. 45
    Перепишем с нуля?

    View Slide

  46. 2.14 …
    2.15 Мы не переписываем
    проекты с нуля
    2.16 ...

    View Slide

  47. 47

    View Slide

  48. 48

    View Slide

  49. 49

    View Slide

  50. 50
    Приём
    денег с
    лендингов
    Валидация
    через
    Symfony
    Validation
    Перейти на
    расчет
    зарплат в
    Redash

    View Slide

  51. ☑ Проблема
    51

    View Slide

  52. ☑ Проблема
    ☑ Профит
    52

    View Slide

  53. ☑ Проблема
    ☑ Профит
    ☑ Возможное решение
    53

    View Slide

  54. View Slide

  55. View Slide

  56. View Slide

  57. 57

    View Slide

  58. ☑ Что делать с Глебом
    ☑ Как выстроить процесс рефакторинга
    58

    View Slide

  59. ● Рефакторить параллельно с разработкой

    View Slide

  60. ● Рефакторить параллельно с разработкой
    ● Определить и формализовать проблемы

    View Slide

  61. ● Рефакторить параллельно с разработкой
    ● Определить и формализовать проблемы
    ● Приоритизировать

    View Slide

  62. 62

    View Slide

  63. 63

    View Slide

  64. ☑ Что делать с Глебом
    ☑ Как выстроить процесс рефакторинга
    ▢ Как писать безупречный код
    64

    View Slide

  65. ✖ Основы и технологии
    65

    View Slide

  66. 66

    View Slide

  67. 67

    View Slide

  68. Пицца-клуб
    68

    View Slide

  69. 69

    View Slide

  70. Пицца-клуб
    Education day
    70

    View Slide

  71. ☑ Основы и технологии
    ✖ Знание проекта
    71

    View Slide

  72. View Slide

  73. 73

    View Slide

  74. 74
    ☑ Крутые решения
    ☑ Точная оценка
    ☑ Причастность

    View Slide

  75. 75

    View Slide

  76. ☑ Основы и технологии
    ☑ Знание проекта
    ✖ Соглашения
    76

    View Slide

  77. 2.1 Мы думаем о последствиях
    2.3 Целостность данных
    2.4 Простые решения лучше сложных
    ...

    View Slide

  78. ☑ Основы и технологии
    ☑ Знание проекта
    ☑ Соглашения
    78

    View Slide

  79. ☑ Что делать с Глебом
    ☑ Как выстроить процесс рефакторинга
    ☑ Как писать безупречный код
    79

    View Slide

  80. View Slide

  81. ● Договариваться
    ● Формализовывать проблемы
    ● Приоритизировать
    ● Фиксировать решения и принципы

    View Slide

  82. 82

    View Slide

  83. 83

    View Slide

  84. 84

    View Slide

  85. 85

    View Slide

  86. BONUS
    1. Техническое ревью
    2. Принципы
    3. Чеклист code-review

    View Slide

  87. ax8080
    Алексей Катаев
    ax8080

    View Slide

  88. ax8080
    Алексей Катаев
    ax8080

    View Slide