Раскрытие рефакторинга: грязные секреты, о которых разработчики не хотят, чтобы вы знали!

Привет! Сегодня мы познакомимся с классным миром рефакторинга. Эта тема всегда важна в нашей работе, но люди часто не понимают ее, а иногда даже пугаются. Итак, давайте погрузимся, не так ли?

Обещания и опасности TDD

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

Вы знаете, TDD требует некоторого опыта и интуиции. У пионеров TDD, таких как Кент Бек и Мартин Фаулер, это было в избытке. Дизайн пришел к ним естественным образом, потому что они делали это так долго. Но для тех из нас, кто новичок в этой области, мы все еще выясняем нашу дизайнерскую интуицию. Мы легко можем упустить общий дизайн программного обеспечения, слишком сосредоточившись на отдельных тестах и ​​фрагментах кода.

Три уровня рефакторинга

Этот куст выглядит сложно, как нам его обойти? Время рефакторинга! Но мы не говорим о каких-то старых видах рефакторинга. Вот в чем дело: у нас есть трехуровневый план по улучшению нашего кода.

  1. Локальный уровень. Мы начинаем с повышения удобочитаемости, удобства обслуживания и простоты. Мы достигаем этого, переименовывая переменные для ясности, выделяя код в отдельные методы для уменьшения сложности и упрощая логику. Это похоже на уборку в нашей комнате, делая наше окружение более приятным и управляемым.
  2. Уровень пакета: сначала нам нужно привести в порядок нашу комнату. Затем мы можем спланировать планировку нашего дома. На уровне пакетов мы перестраиваем наши классы и их взаимодействие. Мы делим классы со слишком большим количеством обязанностей на более мелкие, более целенаправленные. Мы также переопределяем отношения между классами, чтобы лучше представить предметную область. Это похоже на расстановку мебели для максимального комфорта и эффективности.
  3. Уровень проекта: во-первых, нам нужно привести наш дом в порядок. Как только это будет сделано, мы можем сосредоточиться на нашем районе. На уровне проекта мы изучаем архитектуру нашего приложения. Мы находим общие шаблоны и стандартизируем их реализацию. Были…