// codeart.ru / Офтопик / Рефакторить или не рефакторить Форум

Рефакторить или не рефакторить rss подписка

Автор: Evgeniy Sergeev

Начну с вопроса без которого все дальнейшее обсуждение просто потеряет смысл. Вопрос звучит так: ‘должен ли программист любить свою работу?’. Для меня ответ очевиден — если не любить свою работу (на самом деле даже не важно какую), то о хорошем результате не может идти и речи. Нельзя делать качественно, то что не нравится!

При всей своей наивности вопрос очень важный. Потому что для очень многих людей, которых я встречаю в блогах или форумах, вопрос о любви к профессии не стоит вовсе. Для них главное чтобы был достойный выхлоп в денежном эквиваленте. А все остальное не важно. Нет. Не так. Не нужно!

Проблема в том, что при таком тупом подходе читаемость кода занимает далеко не первое место. А вместе с ним теряет смысл и необходимость в рефакторинге. Судите сами — чем быстрее сделан проект, тем быстрее получишь деньги. При этом главное чтобы проект работал, т.е. в точности выполнял желания заказчика. А код? Что код? Чтобы привести его в порядок нужно время. А время, как известно — деньги. Вообщем рефакторить — не рентабельно.

Возможно, вопрос в пользу рефаеторинга мог бы решить тот факт, что проект может вернуться через некоторое время на доработку или сопровождение. Но почему-то на практике это мало кого волнует. Видимо это связано с тем, что проекты возвращаются редко.

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

Если отсутствие желания рефакторить код который делаешь для кого-то еще можно понять, то нежелание рефакторить код который делаешь для себя абсолютно не понятно.

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

Но все же хочется узнать ваше мнение — рефакторить или нет?

  1. Рефакторить нужно не всегда
  1. Естественно, рефакторить! Но для рефакторинга нужно писать достаточно независимый код, чтобы части проекта были как можно более независимы друг от друга, иначе рефакторинг превращается в мерзкое занятие.
    Я был бы рад, если бы вы написали заметку о том, как писать независимый код.

  2. Женя, ну конечно рефакторить, какие тут ещё могут быть вопросы? Я думаю, тебя читают техноманьяки, в основном, с ними всё понятно и очевидно.

    Я вообще не вижу смысла заниматься делом, которое не нравится. А если программирование нравится, то просто невозможно не рефакторить, это ж факт.

    Другой вопрос, что нужно знать меру, уметь вовремя остановиться. Ведь нед предела совершенству, и если рефакторить только ради самого этого процесса, без прикладного результата — это похоже уже на онанизм :)

  3. Надо же, «нед» написал совершенно на автомате. Ужас.

  4. Что рефакторить, что не рефакторить… Одночленственно. Если проект мёртв и одноразов, то зачем тратить время? Да и рефакторинг ради рефакторинга — это бесполезное и не нужное занятие. Рефакторинг — это инструмент для решения проблем, а не создания их самых. Рефакторинг вне области любви или не любви к профессии (програмер прогматик?). Рефакторинг из области здравого смысла. Если он нужен, то стоимость вложили и выполнили. А если это так… ковыряния в себе… перфекционизм… Нафик такой рефакторинг. Всё должен определять здравый смысл.

    Если хочется получать удовольствие от рефакторинга длинными зимними вечерами, то сдай проект и рефактори сколько хочешь.

  5. Евгений, а зачем тогда программирование, если удовольствия от него ноль? А здравый смысл — это величайшая наебка. Любой руководитель тому доказательство.

  6. Evgeny, мастер тем и отличается от подмастерья, что для него удовольствие — это не самое главное, а только одна из составляющих деятельности. В программирование идут толпы, которые на первых порах получают удовольствие. Причём от тупой гордости, что вот могут через набитый текст управлять сложной железякой. И это пена.

    Я согласен, что любая проф деятельность должна быть путём сердца. Но рефакторинг и удовольствие — вещи различные. И не потому что рефакторинг неприятен или приятен. Он может быть приятен, как пиво, девчёнки и рок-енд-рол. А может быть и просто абузой, которую нужно выполнить. Или не выполнить. Рефакторинг — это просто один из видов деятельности. :)

  7. Евгений, путешествие лучше чем прибытие на место. Или, другими словами, процесс важнее результата! Конечно, рефакторинг — это не цель, цель — это удовлетворение от проделанной работы.

    Я, кстати, уверен, что ты понимаешь о чем я говорю, но при специально надеваешь маску некого пренебрежения.

  8. А я не согласен, что в таких вот прикладных сферах человеческой деятельности типа программирования процесс важнее результата. Как раз-таки наоборот.

  9. Evgeny, никакой маски пренебрежения. Вы не думали, что кто-то и в морге всю жизнь работает?

    Есть понятие профессионализма. Удовольствие — это конечно хорошо, но это не главное.

    И рефакторинг имеет место быть, но не потому, что он кому-то доставляет удовольствие. И в другом случае он вообще не нужен даже если вы чувствуете, что получите от него удовольствие. Любая разработка — это не круглый конь в вакууме, а ещё и время жизни разработчиков. Его можно по тратить на бесконечный рефакторинг (совершенству нет придела). А можно ещё на что-то более полезное.

  10. Торомз,
    >А я не согласен, что в таких вот прикладных сферах человеческой деятельности типа программирования процесс важнее результата. Как раз-таки наоборот.

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

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

    >Удовольствие — это конечно хорошо, но это не главное.
    Да нет ничего «главного» или «не главного», есть просто жизнь, в которой ты либо делаешь то что тебе интересно, либо делаешь, то что не интересно. Особой разницы, конечно, нет, но второй вариант мне как-то приятнее. :-)

  11. Точнее первый вариант приятнее :-)

  12. Евгений, так оно так и есть. Жизнь состоит из череды мгновений, только они и запоминаются :) Как бы ты не любил рефакторинг, ты не вспомнишь что делал, даже через 2-3 года, не говоря уж о десятилетии. А хорошие результаты будешь помнить всю жизнь.

    Стремиться стоит к большему количеству этих счастливых моментов, сплошное счастье в процессе — утопия. Я так думаю.

Leave a Reply

« »