Тема этого рассказа — рефакторинг. Как вы можете улучшить свой код с помощью рефакторинга?

Сначала мы дадим определение рефакторингу, а затем углубимся в тему, объяснив, почему, когда, как и результаты рефакторинга. Это даст нам обзор темы с точки зрения программиста.

Давайте начнем.

Определение рефакторинга

Рефакторинг по своей сути представляет собой изменение кода без каких-либо изменений его внешнего поведения. Это сохраняется. Вы реструктурируете свой код, как факторизуете математическое уравнение. Фундаментальная истина о коде неизменна, как и результат упомянутого уравнения.

Зачем проводить рефакторинг?

Если вам нравится проектирование, возможно, вам нравится строительная метафора программирования. Вы проектируете свое решение как здание. Но любой опытный профессионал скажет вам, что программирование больше похоже на садоводство. Код развивается и, что самое главное, разлагается и гниет, если его оставить без внимания. Появляются новые технологии. Бизнесмены хотят новых требований. И тогда ваш справочник говорит вам: «Не живите с разбитыми окнами». Итак, вы должны что-то сделать с уродливым кодом. Это как гигиеническая привычка. Вы делаете это часто, в лучшем случае ежедневно. Заботиться. Сделай что-нибудь.

Рефакторинг делает что-то хорошее с вашим кодом. Это делает его более кратким. Вам и вашим коллегам будет легче читать. Его общая сложность уменьшается за счет более подходящей архитектуры или иерархии объектов. Код стал более выразительным и обширным в целом. Итак, главное: рефакторинг повышает ремонтопригодность проекта.

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

Когда проводить рефакторинг?

Вы проводите рефакторинг в основном, когда это начинает вонять. Запах кода является спусковым крючком. Посмотрите их в коде, затем приступайте к рефакторингу. Но, пожалуйста, не начинайте без плана. Составьте график рефакторинга, особенно если есть чертовски много вещей, которые нужно очистить. Отслеживайте обонятельные части, а затем делайте это по частям. Возможно, у вас сейчас нет времени на тотальную уборку, поэтому используйте пресловутое правило 80/20. Ты знаешь это. Если вы этого не знаете, погуглите сейчас. Не читайте дальше, используйте Google. Вы не пожалеете об этом. Использование этого подхода также решает уродливую проблему нехватки времени. Не позволяйте нехватке времени вашей повседневной рабочей жизни убедить вас навсегда отложить необходимый рефакторинг.

Одна приятная причина для рефакторинга: самосовершенствование. То, что вы узнаете из кода, и ваш ежедневный прогресс заставят вас переоценить вчерашний код.

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

Как провести рефакторинг?

Подойти к теме, если вас окончательно убедили придерживаться правила кемпинга: всегда оставляйте лучше, чем нашли! По сути, TDD учит нас бесконечному циклу красного, зеленого и рефакторинга. Итак, вам нужны тесты для упорядоченного рефакторинга. Твердый (менее 100% покрытия кода) набор автоматических тестов сделает ваш рефакторинг, возможно, не на 100% безопасным, но, по крайней мере, экономически выгодным. Тесты должны выполняться быстро, чтобы к ним можно было привыкнуть к любому редактированию, независимо от того, насколько мало изменений.

Итак, теперь вы делаете микрорефакторинг, проверяете свои тесты и повторяете. Микрорефакторинг — это немного стандартизированный шаблон правок, который сам по себе мало что делает, но объединяет несколько из них, и теперь мы говорим.

Микрорефакторинг описан в отличной книге Мартина Фаулера по этой теме. Эта книга является каноническим справочником, так что прочтите ее, если вы жаждете знаний. Они также поддерживаются многими IDE, которые обеспечивают автоматическую поддержку некоторых из них.

Хорошая стратегия — рефакторинг вашего кода для разработки шаблонов. Это означает, что целевой структурой будет определенный шаблон проектирования. Дополнительные сведения по этой теме см. в одноименной книге.

Результаты рефакторинга

Итак, к чему приводит рефакторинг? Если нам повезет и все будет сделано хорошо, мы получим указанные выше выигрыши и обнаружим, возможно, одну или несколько скрытых ошибок и/или уязвимостей. С другой стороны, если мы плохо проведем рефакторинг, мы можем добавить больше ошибок в наш код или непреднамеренно изменить внешнее поведение программы. Но что плохого в том, что мы вообще не рефакторим? Код будет разлагаться и гнить, и мы будем накапливать больше технического долга, пока программа не перестанет поддерживаться.

Поэтому проводите рефакторинг раньше, рефакторинг чаще.

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