Тематические статьи →

Рефакторинг — это неизбежный процесс

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

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

Без рефак­то­ринга не обхо­дится ни один дей­стви­тельно слож­ный и дол­го­жи­ву­щий про­ект

Обой­тись без рефак­то­ринга можно лишь в том слу­чае, если раз­ра­ба­ты­ва­ется что-то, что будет исполь­зо­вано лишь одна­ж­ды, а потом про­сто выбро­ше­но. Во всех осталь­ных слу­чаях рефак­то­ринг необ­хо­дим. Про­яв­ляться он, конеч­но, может по раз­но­му.

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

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

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

Наи­бо­лее частые при­чины для рефак­то­ринга:

  • дуб­ли­ро­ва­ние кода;
  • длин­ные методы;
  • объ­ём­ные классы;
  • длин­ные списки параметров;
  • избы­точ­ные вре­мен­ные переменные;
  • классы данных;
  • нес­груп­пи­ро­ван­ные дан­ные;
  • несо­блю­де­ние стан­дар­тов коди­ро­ва­ния.

Рефак­то­ринг очень суще­ственно вли­яет на сопро­вож­да­е­мость про­екта

Любой про­ект без регу­ляр­ного рефак­то­ринга за несколько лет (или даже меся­цев) ста­но­вится труд­ным для пони­ма­ния, про­цессы изме­не­ний замед­ля­ются и ста­но­вятся доро­же, а ино­гда такие про­екты дохо­дят до состо­я­ния «проще пере­пи­сать тут всё с нуля, чем раз­би­раться». Таким обра­зом затраты на рефак­то­ринг оку­па­ются за счёт того, что изме­не­ния вно­сить ста­но­вится проще и про­цесс модер­ни­за­ции обхо­дится зна­чи­тельно дешевле.

Рефак­то­ринг и опти­ми­за­ция про­из­во­ди­тель­но­сти

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

Поделитесь с друзьями:


Информация о публикации:

Материал опубликован в 2014 году. Эта ста­тья о веб-разработке. При пере­пуб­ли­ка­ции обя­за­тельно ука­за­ние пер­во­ис­точ­ника в виде гипер­тек­сто­вой ссылки на сайт web-creator.ru

Воспользуйтесь нашими
знаниями и опытом

Отправьте нам сообщение при помощи формы. Или напишите на e-mail s@web-creator.ru

Мы максимально оперативно ответим Вам по электронной почте или перезвоним.

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

Либо просто позвоните нам по номеру: +7 495 215-1501

Комплексные услуги

Реализация «под ключ» проектов по созданию различных видов сайтов, разработка веб-приложений для автоматизации бизнес-процессов, ведение контекстных и медийных рекламных кампаний, поисковое продвижение, комплексная поддержка веб-проектов, консалтинговые услуги.