Рефакторинг для начинающих

Written by Yaroslav Vorozhko on September 8, 2008 – 9:12 pm -

Рефакторинг - это реорганизация существующего кода без изменения функциональности.

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

Вот 7 хороших советов для проведения рефакторинга:

  1. Всегда выполняйте рефакторинг короткими шагами с перерывом на перекомпиляцию и запуском тестов. Чем меньше ваши шаги, тем лучше вы локализуете потенциальные ошибки и тем быстрее вы их устраните. То, что ошибки будут можно не сомневаться. ;-)
  2. Проводите рефакторинг снизу вверх, особенно, если у вас длинная и запутанная цепочка наследования классов. Старайтесь всегда сначала производить изменения в потомственных классах, прежде чем приступать к базовым классам.
  3. Вы должны знать основные методы рефакторинга, для этого советую вам купить книгу Мартина Фаулера - “Рефакторинг”.
  4. У вас всегда должна быть цель с которой вы производите рефакторинг, не делайте его там где он не нужен или только, если это не первоочередная задача. Чем лучше вы понимаете зачем вы это делаете, тем качественнее будет результат.
  5. Не увлекайтесь рефакторингом, рефакторинг не добавляет функционала в программу, поэтому и каких либо видимых результатов вы также не получите. Делайте перерывы для того, чтоб сделать, что то, что можно увидеть и оценить. Тогда ваш начальник будет вами доволен. :)
  6. Любой вид рефакторинга можно сделать за 5, 20 минут, максимум за один час. Но в основном рефакторинг является комплексной задачей, которая может выполняться в течении недель или месяцев над действующим проектом. Идея в том, что двигаться нужно постепенно и небольшими шагами, и возможно уделяя этому не больше одного часа в день. Это хороший метод рефакторинга, потому как не занимает много времени и убедить начальство в необходимости будет намного проще, ведь 1 час это так мало, не так ли?
  7. В долгосрочной перспективе у вас будет красивый и легко сопровождаемый код, код который написан для людей, а не для машин, код которым вы можете гордиться и показывать в пример, код который работает так как вы этого хотите, и все это за невысокую цену рефакторинга!

Tags: , , , , ,
Posted in Development, Tips And Tricks, Высококачественный код, Мастерство Программирования, Усовершенствование Кода |

7 Comments to “Рефакторинг для начинающих”

  1. yuri Says:

    По-моему, взяты правила из той самой книги. Так?

  2. sse Says:

    .. Cорри, не сдержался:

    а) пост ни о чем - просто болото; зачем писать, не понимая, что и зачем Вы пишете? Прочитав пост, так и неясно - ЗАЧЕМ, собственно, делать рефакторинг?
    б) советы явно придуманы не Вами и не Вами выработаны - взяты из замечательной упомянутой книги Фаулера (страницы подсказать?)
    в) статья производит впечатление сгенерированной в синонимайзере или авто-переводчиком - потрясающая синтаксическая/стилевая безграмотность;
    г) ну и, наконец, туча опечаток;

    д) и еще - могу поспорить, что этот комментарий вы не опубликуете.

    С уважением, Юрий

  3. Yaroslav Vorozhko Says:

    Я знал, что кто то задаст такой вопрос. :)
    Так как те кто читал книгу, уже знакомы с этими правилами.
    Но, это мой общий обзор, а не копирование слов Мартина.
    Если, что и пропустил, тогда прошу дополнить.
    Юра, спасибо за отзыв.

  4. Yaroslav Vorozhko Says:

    2 sse,
    Вы видимо читали статью через строчку.

    >советы явно придуманы не Вами и не Вами >выработаны
    ответил выше.

    >статья производит впечатление сгенерированной в синонимайзере или авто-переводчиком
    Пишите лучше, кто вам не дает.

    >пост ни о чем - просто болото; ачем писать, не понимая, что и зачем Вы пишете? Прочитав пост, так и неясно - ЗАЧЕМ, собственно, делать рефакторинг?

    Я на вопрос зачем ответил в советах, смотрите совет 7.

    Насчет опечаток согласен, присутствуют, буду исправлять.
    А что вы сразу писали без опечаток?

    Спасибо за отзыв, принимаю любую критику.

  5. Довыдов Says:

    Очень красиво получилось.. Мне понравилось..) Буду постоянно к вам захаживать.

  6. sse Says:

    Не, я не писал сразу без опечаток :) Прошу прощения, что так набросился.

    Рефакторинг - больная тема; такой многообещающий заголовок и такой резкий контраст с содержимым :/

    И еще мне кажется, что Вы смогли бы улучшить статью, и она бы просто засияла :)

    Спасибо.

  7. Yaroslav Vorozhko Says:

    sse,
    Хорошо, что мы друг друга поняли.
    Я действительно мало времени уделил вычитке и вообще статье - статью написал за 15 минут и 2 раза вычитал, до того как вы написали и после этого :)
    А вообще за это время появились мысли на продолжение (дполнение) данной статьи, надеюсь в сочетании с этой статьей вам оно больше понравиться.
    Спасибо за отзыв.

Leave a Comment