Рефакторинг в стиле ниндзя и другие приемчики

    Можно вечно смотреть на улучшать три вещи: первую, вторую и код, который написан не тобой. Именно ему мы решили посвятить один из ближайших онлайн-митапов:

    • посмотрим на код популярного опенсорс-проекта на гитхабе,
    • покажем разные подходы к его рефакторингу, обсудим полезные инструменты, возможные грабли — ну и немного попишем в прямом эфире.
    • а еще разыграем вот такого слона за лучшую историю о рефакторинге
      Истории будут приниматься в чате трансляции на Youtube. Лучшую историю субъективно выберут ведущие в конце стрима. Мы отправим слоника из Москвы в любую точку мира.

      У слона есть вторая сторона, на которой написано Symfony. Возможно, кому-то будет важно это знать.


      Слоник официальный. Ехал к нам 3 месяца.




    Подключайся в ближайший четверг, 1-го октября, в 19 часов по Москве/Киеву/Минску. Тут можно посмотреть расписание стрима и получить напоминалку.

    Под катом — знакомство с участниками и несколько «разогревающих» историй от них.

    Валентин Назаров — соведущий; лидил CRM-1, один из старейших проектов в Skyeng


    Расскажи про свой первый опыт рефакторинга.

    Разбирал в 2011-м самописный движок какого-то проекта про туризм. Я тогда был начинающим разработчиком, мало не показалось :) Но и сейчас такое прогрызть было бы очень непросто.

    А самая памятная история про это?

    См. выше.

    Как устроен подход к рефакторигу в твоей команде?

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

    Про практики других команд ребята из компании как-то писали целый пост.

    Рефакторинг — это…

    Работа над ошибками.


    Александр Макаров — соведущий; пилит 3-ю версию фреймворка Yii


    Расскажи про свой первый опыт рефакторинга.

    Ох, не вспомню, но было всякое. И без тестов рефакторил, а потом ломалось. И часть бизнес-логики терял. И без понимания кода рефакторил не так.

    А cамая памятная история про рефакторинг?

    Я идеально старался написать движок блога. Процесс растянулся года на три… Сейчас бы я не назвал тот код хорошим.

    Как устроен подход к рефакторигу в твоей команде?

    Черновая версия pull request выкладывается на всеобщее обозрение. Далее все налетают и оставляют комменты. По итогам рефакторим.

    Иногда специально рефакторим тоже, но процедура примерно та же.

    Рефакторинг — это…

    Способ не погрязнуть в техническом долге.


    Валентин Удальцов — будет рефакторить; ведет телеграм-канал «Пых»


    Расскажи про свой первый опыт рефакторинга.

    Трудно вспомнить, я всегда любил это дело.

    А самая памятная история про это дело?

    Однажды на большом проекте я оптимизировал конфигурацию Symfony Security. В пятницу это задеплоили, а в понедельник выяснилось, что все выходные клиенты не могли зайти через OAuth на один из ключевых разделов сайта…

    Как устроен подход к рефакторигу в твоей команде?

    У нас модульный код и достаточно низкий coupling, это помогает. Что касается новых фич, мы не стараемся сразу всё сделать верно. Это невозможно и неэффективно. Некоторые проблемы нужно загрузить в голову, чтобы через пару месяцев получить решение. Поэтому часто мы останавливаемся на каком-то простом решении в лоб, но помечаем часть кода подробными todo. Раз в месяц или чаще я прохожусь по todo в проекте и смотрю, что можно из этого переделать прямо сейчас. Правило состоит в том, что сделать нужно хоть что-то.

    Рефакторинг — это…

    Когда ты делаешь лучше, потому что теперь знаешь, как.


    Леонид Корсаков — будет рефакторить; ведет чат PHP-сообщества Татарстана


    Расскажи про свой первый опыт рефакторинга.

    Никогда не работал на проекте, где был бы идеальный код. Так что с рефакторингом по жизни)

    Самая памятная история про это.

    Однажды зарефакторили очень много кода, добавили фич, а релиз так и не пошел в продакшен.

    Как устроен подход к рефакторигу в твоей команде?

    Инициатива полностью отдана разработчикам.

    Рефакторинг — это…

    Непрерывный процесс улучшения кода.

    p.s. Надеемся увидеться на стриме в четверг. Готовьте свои истории.

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    Рефакторинг — это…

    • 25,9%Работа над ошибками :)15
    • 43,1%Способ не погрязнуть в техническом долге25
    • 60,3%Когда ты делаешь лучше, потому что теперь знаешь, как35
    • 63,8%Непрерывный процесс улучшения кода37
    Skyeng
    Крупнейшая онлайн-школа Европы. Удаленная работа

    Комментарии 4

      +2
      какой же это больной вопрос для тех, кто хочет разобраться в легаси, который воняет на километр комитов.
        +4

        Он больной не только для легаси потому как… всё постепенно становится легаси.

          0

          так а чего рефакторить -то будут? Yii?

            0

            Можно догадаться ;)

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое