Чек-лист для .NET программиста: Рефакторинг

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

На вопрос рефакторить или нет помогает ответить каталог Code Smells. Для того, чтобы правильно провести рефакторинг существует целый набор задокументированных техник, таких как Extract Method, Preserve Whole Object, Pull Up Method, Replace Constructor with Factory Method и многих других. Даже опытный программист может привнести некоторое количество дефектов в программу после проведенного рефакторинга. Минимизировать шансы на их появление позволяют грамотно написанные модульные тесты, регулярно запускаемые в процессе рефакторинга.

Вопросы

  1. Какая польза модульных тестов при проведении рефакторинга?
  2. Какие существуют показатели некачественного кода?
  3. Какие инструменты быстрого рефакторинга встроены в Visual Studio?
  4. Как рефакторить магические числа?
  5. Как провести рефакторинг метода, который принимает 11 параметров?
  6. Как избавиться от дублирующегося метода в двух классах наследниках?
  7. Как рефакторить дублирование кода в каждом из блоков if…else?
  8. Как провести рефакторинг большого блока if…else, выполнение которого зависит от состояния объекта?
  9. Как избежать регулярных проверок объекта на null перед вызовом его метода?
  10. Как избавиться от bool флага, который используется в циклах?
  11. Как провести рефакторинг, если класс наследник только частично использует функции базового?
  12. Как провести рефакторинг метода, который имеет возвращаемое значение и одновременно модифицирует внешнее состояние?

Книги

Статьи

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s