Основы рефакторинга в Delphi XE.

Основы рефакторинга в Delphi XE.

Rename – переименование

Extract resource string

Extract Method

  1. Переименовать метод и присвоить ему новое, более подходящее имя
  2. Разделить метод на два – первый метод так и будет открывать файл, а второй – парсить.

Change Params – изменение списка параметров

  • Имя переменной должно содержать какой-либо префикс, который поможет нам узнать тип данных, например btn – укажет на то, что это переменна TButton, int – integer и т.д.;
  • Имя переменной должно быть осмысленное — без лишних пояснений должно быть понятно, что за этим именем скрывается.
  • Одна и та же переменная не должна выполнять сразу два действия в одном и том же блоке кода. Если переменная сначала используется для записи в неё размера файла, а потом выступает в качестве счётчика цикла, то это усложнит понимание код, следовательно код необходимо будет подвергать рефакторингу.
  • Как и при работе с переменными, метод должен иметь осмысленное название;
  • Метод, по возможности, должен быть узконаправленным и выполнять ту задачу,которая на него возлагается. При этом не стоит разбивать взаимосвязанные операции, например, открытие файла и проверка его существования.
  • В части работы с методами следует также помнить, что размер имеет значение – если метод громоздкий и не помещается хотя бы в экран, то стоит задуматься о рефакторинге и выделении из этого метода одного или нескольких самостоятельных.
  1. Несмотря на кажущуюся головную боль из-за перебирания кода, выделения непонятных мест их исправления и т.д. правильно проведенный рефакторинг значительно увеличит читабельность и, соответственно, понимание Вашего кода не только Вами, но и другими разработчиками.
  2. Есть реальная возможность найти “проколы” в логике приложения, особенно, если дело касается крупных проектов.
  3. Рефакторинг позволяет повысить безопасность Ваших разработок, т.к. см. п.1-2.
  4. Мусор в проектах имеет тенденцию быстро расти и множится – рефакторинг как в процессе работы над проектом так и после позволяет избежать такого накопления.

Кроме Совершенного кода рекомендую ещё Фаулера с его книгой по рефакторингу. Хорошо направляет в нужное русло.

Совершенный код уже нагуглил :)

“Совершенный код” — а я б вот твою книжку с удовольствием заимел, с тем же самым что на сайте! подумай об этом, как у Гришковца есть несколько книжек «Год ЖЖизни» назывались, с его статьями за год в ЖивомЖурнале.. или хоть в пдф бы это все в кучку.. а то времени читать сайт очень мало((( я бы даже купил такой pdf.. но к сожалению в отличии от книжки pdfы быстро нагулят:) и про спасибо забудут… да и бумажная книжка удобнее. :) про статью — полезно, давно на реф. посматривал да не понимал что и как.

Ну, одна-то pdf-ка уже есть, вторая на эту же тему пишется. Но вот собрать весь блог в pdf-ку как-то даже не думал :) Может попробую

Ribbon… а я еще дежавю какое-то испытывал когда про pdf писал, в ленте видел это когда появилось, но не заинтересовало тогда :) .. так что на не Ribbon pdfки я первый в очереди, с автографом ;)))

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

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

Единственные полезные для себя команды, которые регулярно использую: CTRL+SHIFT+E — переименование CTRL+SHIFT+A — поиск недостающего модуля и его добавление в uses.

Например, хотим использовать функцию для нахождения минимального значения — пишем «min», жмем CTRL+SHIFT+A и в списке найденный модулей выбираем Math — он сразу добавится в uses, если его еще нет. Очень удобно. К сожалению, эта фича также не всегда работает из-за давно извесных ошибок с «не видением» модулей и их исходников для анализа/поиска.

📎📎📎📎📎📎📎📎📎📎