Что такое рефакторинг

      Комментарии к записи Что такое рефакторинг отключены

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 3 нед., 6 дн. назад.

  • Автор
    Сообщения
  • #4019

    Прежде чем перейти непосредственно к теме данной статьи, посвящённой понятию Рефакторинга, вернёмся немного к прошлым темам.

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

    Здесь же мы поговорим о процессе работы над кодом, который нельзя назвать предварительным этапом в разработке, поскольку он предполагается уже на этапе разработке, или вообще по его окончании.

    Это процесс усовершенствования, переосмысления, доработки. И, хоть и существует высказывание о том, что не стоит чинить то, что и без этого работает, всё же свежий взгляд на проделанную работу с целью внесения корректив необходим, если мы действительно хотим создавать качественный продукт.

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

    Причин для рефакторинга масса….

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

    В принципе, никогда не поздно. Если время работы над проектом позволяет – то это лучшее, что можно придумать.

    Я даже не говорю о том, насколько рефакторинг полезен для новичков. Написать код и найти его слабые места с целью доработки.

    Во-первых, это вырабатывает привычку относиться более критично к собственной работе.

    Во-вторых, это привычка мыслить, оценивать, прогнозировать поведение кода при разных обстоятельствах.

    Еще раз повторю, что не следует путать рефакторинг с проектированием. Проектирование происходит ДО работы над написанием кода. Рефакторинг можно проводить ПО МЕРЕ работы и ПО ЗАВЕРШЕНИИ работы над кодом.

    Направлений, по которым можно проводить рефакторинг и поводов к его проведению очень много. Мы, конечно, коснёмся основных из них, наиболее популярных. И тем, кто читает эту статью, я могу порекомендовать также прочитать Злоупотребление шаблонами проектирования, или “код с душком”.

    Если говорить о сложности самого процесса проведения рефакторинга кода – это не так уж сложно, скорее, это кропотливая работа, требующая аккуратности и внимания. Ибо поломать рабочий код из лучших побуждений — сделать его лучше – проще простого.

    Если говорить о том, что даёт рефакторинг кода, к какому положительному эффекту мы приходит после его проведения, то можно выделить следующие моменты:

    • он улучшает композицию кода
    • код становится более чистым и лучше читается
    • его легче модифицировать
    • нет дублирований
    • логика детерминирована (каждый класс занимается строго своим делом)
    • после рефакторинга в коде становится проще находить ошибки
    • нет громоздких и трудных для восприятия конструкций

    Не скажу, что это и всё, но даже этого списка достаточно, чтобы понять – рефакторинг нужен!!

    Ещё раз повторю, рефакторинг — это работа над кодом по мере его написания или после написания, которая помогает убрать шероховатости, улучшить качество внутренней структуры кода, сделать его проще для восприятия и доработки, и при всём этом внешний функционал приложения остаётся прежним.

    В следующих статьях мы рассмотрим ситуации, которые требуют проведения рефакторинга кода. А пока что можно посмотреть на принципы SOLID — они очень помогают проводить рефакторинг правильно.

Для ответа в этой теме необходимо авторизоваться.