omentes
8 уровень

Рефакторинг

Статья из группы Архив info.javarush
Сегодня попал на один очень интересный гайд. Точнее сайт, посвященный рефакторингу. Советую к прочтению :) Рефакторинг - 1Итак, кратко о чем речь: рефакторинг — это контролируемый процесс улучшения вашего кода, без написания новой функциональности. Задача рефакторинга: уменьшить технический долг. Цель рефакторинга: чистый код и простой дизайн. Чистый код = Простой код
  • Чистый код проходит все тесты.
  • Чистый код очевиден для других программистов.
  • Чистый код не содержит дублирования.
  • Чистый код содержит минимум классов и других движущихся частей.
  • Чистый код легче и дешевле поддерживать.
Как проходит рефакторинг? Рефакторинг следует проводить серией небольших изменений, каждое из которых делает существующий код чуть лучше, оставляя программу в рабочем состоянии. Чеклист правильно проведенного рефакторинга:
  • В процессе рефакторинга не создается новая функциональность.
  • После рефакторинга все существующие тесты должны успешно проходить.
  • После рефакторинга код должен стать чище.
Подробнее, с прекрасно оформленными примерами — по ссылке.
Комментарии (3)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
blacky Уровень 23
16 июля 2014
Да-да-да, читал пост «Всё, что вы хотели узнать о рефакторинге, но боялись спросить» на хабре. Сайт — отличное визуальное оформление/дополнение книги.
Ещё мне нравится текст философии из python:
Красивое лучше, чем уродливое.
Явное лучше, чем неявное.
Простое лучше, чем сложное.
Сложное лучше, чем запутанное.
Плоское лучше, чем вложенное.
Разреженное лучше, чем плотное.
Читаемость имеет значение.
Особые случаи не настолько особые, чтобы нарушать правила.
При этом практичность важнее безупречности.
Ошибки никогда не должны замалчиваться.
Если не замалчиваются явно.
Встретив двусмысленность, отбрось искушение угадать.
Должен существовать один — и, желательно, только один — очевидный способ сделать это.
Хотя он поначалу может быть и не очевиден, если вы не голландец[7].
Сейчас лучше, чем никогда.
Хотя никогда зачастую лучше, чем прямо сейчас.
Если реализацию сложно объяснить — идея плоха.
Если реализацию легко объяснить — идея, возможно, хороша.
Пространства имён — отличная штука! Будем делать их побольше!
Это, конечно, не относится напрямую к рефакторингу, но косвенно даже очень =)
А ещё статья «Восемь принципов программирования, которые могут облегчить вам жизнь». Если кратко, то:
* инкапсуляция и делегирование, чтобы приложение было гибким
* принцип открытости закрытости (Open-Closed Principle — OCP) и принцип единственной ответственности (Single Responsibility Principle — SRP) — для повторного использования кода
* использовать паттерны проектирования, чтобы решать задачу эффективно
* использовать UML диаграммы, чтобы понять правильно ли спроектирована программа
* принцип подстановки Барбары Лисков
Sant9Iga Уровень 41
16 июля 2014
норм спасибо)