2009-07-30 3 views
1

Каковы ваши лучшие методы рефакторинга кода .NET?Рефакторинг .NET Code, какова ваша лучшая практика?

+3

Можете ли вы уточнить свое намерение позади q? В ее нынешнем виде: Моя лучшая практика будет заключаться в том, чтобы «сделать это». – Gishu

+0

Да, и убедитесь, что то, с чем вы закончили, лучше, чем то, с чего вы начали: 0) – UpTheCreek

+0

Мне действительно нужно знать, что лучше всего делать при рефакторинге кода? – Ahmed

ответ

12

Рефакторинг Правило оптимальной практики № 1: Напишите несколько тестов в первую очередь!

Рефакторинг должен сделать код более удобным для обслуживания и в идеале уменьшить сцепление между компонентами/классами.

Хорошие кандидатов для рефакторинга классы с высокой связью с другими классами, и классы, которые слишком много (преодолев единую ответственность Принципа)

Таких инструментов, как ReSharper или Visual Studio's built-in tools являются полезными средствами.

Если вы используете VB.NET, а затем проверить: Refactor! for Visual Basic 2008

0
  • Ваш код должен быть более удобным для чтения/понятно не менее, когда вы закончите.
  • Как правило, ваши методы должны быть короче, а не дольше.
  • Повторяющийся код следует переместить в свой собственный метод и использовать повторно.
1

Не смешивайте рефакторинг с добавлением или изменением функциональности приложения.

0

Рефакторинг с набором тестов для обеспечения того, чтобы вы ничего не нарушали.

2

Такой расплывчатый, как quesion, трудно дать хороший ответ. Но я предлагаю вам прочитать каталог Мартина Фаулера рефакторинга, это дает вам отличную отправную точку:

Refactorings

3

Обычно написание тестов не является первым, что вы делаете, с унаследованным кодом, скорее всего, вы не будете иметь возможность писать тесты (зависимость от БД, внешних библиотек, статики, и так далее)

Lean на инструментах первых, использовать автоматические рефакторинга, как «метод Extract» (Resharper и VS - ваши друзья)

Эффективная работа с устаревшим кодом Michael Feathers - очень хорошая книга, чтобы узнать, как разбить эти зависимости.

Для числовых алгоритмов и парсеров PEX - очень полезный инструмент для легкого создания тестов модуляции характеристик.

+0

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

+1

@Arnis L .: Проблема всегда: «Как я могу быть уверен, что мои тривиальные ролики не перехватывают/не ломают что-нибудь?». Я знаю по опыту (!), Что даже самые незначительные изменения могут иногда иметь непреднамеренные последствия. –

+0

@Mitch Если вы сначала опираетесь на инструменты, вы можете быть на 99% уверены, что хотите что-то тормозить. Следующее, что нужно сделать, это, конечно, написать несколько тестов. –

0

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

Кроме того, когда это легко сделать на новой ветке, сделайте это. Вы никогда не знаете, когда ошибка ползет на полпути к вашему процессу рефакторинга, и вам нужно быстро развернуть патч (на основе предыдущей, стабильной версии).

0

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

0

Удалить все повторение кода.