Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #71, ОКТЯБРЬ 2006 г.

чудеса легкости

ФЛЕНОВ МИХАИЛ

Спецвыпуск: Хакер, номер #071, стр. 071-052-1


HTTP://WWW.VR-ONLINE.RU

РЕФАКТОРИНГ – НЕОБХОДИМОСТЬ ИЛИ МОДА?

ЧТО ТАКОЕ РЕФАКТОРИНГ? Я ВИДЕЛ ДОСТАТОЧНО МНОГО ОПРЕДЕЛЕНИЙ ЭТОГО ПОНЯТИЯ, НО ВСЕ ОНИ СВОДЯТСЯ К УЛУЧШЕНИЮ СУЩЕСТВУЮЩЕГО КОДА. ЕСЛИ ТЫ ДУМАЕШЬ, ЧТО ПИШЕШЬ ИДЕАЛЬНЫЙ КОД, КОТОРЫЙ НУЖНО УЛУЧШАТЬ ТОЛЬКО В ТЕХ СЛУЧАЯХ, КОГДА ОН НЕ РАБОТАЕТ, ТО СИЛЬНО ЗАБЛУЖДАЕШЬСЯ. УЛУЧШЕНИЯ НУЖНЫ ДАЖЕ ТОГДА, КОГДА КОД РАБОТАЕТ ВПОЛНЕ КОРРЕКТНО. ДЛЯ ЧЕГО, КОГДА И КАК НУЖНО УЛУЧШАТЬ - УЗНАЕШЬ В ЭТОЙ СТАТЬЕ

[для чего нужен рефакторинг.]

Что можно улучшить в коде, который и так уже работает и выполняет возложенные на него функции? Если программу не планируется улучшать и добавлять новые возможности, то можно больше ничего не трогать. Лучше даже удалить исходники, дабы не пытаться разбирать бардак или использовать его в будущем. Но если программа нужна не на один день, то рефакторинг необходим.

Ты хотя бы иногда убираешь на своем рабочем столе? Хоть иногда очищаешь компьютер от мусора и неиспользуемых программ? Ну и, наконец, убираешь в квартире, чтобы не ходить по ковру из бумажек и окурков? Последний пример, может быть, и не очень удачный, потому что убираться в квартире большинство из нас не любит (сбрасывая это занятие на маму/жену/подругу), но ходить по мусору и жить в бардаке уж точно не приятно.

То же самое касается и кода. Если он написан хорошо и легко читается, то его приятно сопровождать, добавлять новые функции или оптимизировать. Такой код можно даже использовать в других проектах. Но если код написан ужасно, то намного приятнее переписать все с нуля. Из-за плохого кода лет пять назад я забросил один из любимых проектов и переписал заново. Этот проект я начинал еще в 1996 году и ни разу не задумывался о рефакторинге. Тогда даже понятия такого не знал (возможно, его и не было). Получив этот неприятный опыт, я теперь на всех этапах написания кода задумываюсь о его улучшении и при первом же появлении мусора улучшаю и очищаю код.

Важность рефакторинга подчеркивает и то, что во всех последних версиях сред разработки (Delphi 2005/2006, JBuilder 9 и выше, Visual Studio 2005) появились различные мастера и функции для улучшения кода. Эти функции не могут охватить все сферы рефакторинга, да и без знания основ их использовать проблематично.

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

[комментарии.]

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

К комментариям применимо одно простое правило – они должны быть короткими и понятными. Если среда разработки поддерживает комментарии TODO, то не стесняйся использовать их, они реально помогают.

Содержание  Вперед на стр. 071-052-2