Основы рефакторинга в Delphi XE.
Rename – переименование
Extract resource string
Extract Method
- Переименовать метод и присвоить ему новое, более подходящее имя
- Разделить метод на два – первый метод так и будет открывать файл, а второй – парсить.
Change Params – изменение списка параметров
- Имя переменной должно содержать какой-либо префикс, который поможет нам узнать тип данных, например btn – укажет на то, что это переменна TButton, int – integer и т.д.;
- Имя переменной должно быть осмысленное — без лишних пояснений должно быть понятно, что за этим именем скрывается.
- Одна и та же переменная не должна выполнять сразу два действия в одном и том же блоке кода. Если переменная сначала используется для записи в неё размера файла, а потом выступает в качестве счётчика цикла, то это усложнит понимание код, следовательно код необходимо будет подвергать рефакторингу.
- Как и при работе с переменными, метод должен иметь осмысленное название;
- Метод, по возможности, должен быть узконаправленным и выполнять ту задачу,которая на него возлагается. При этом не стоит разбивать взаимосвязанные операции, например, открытие файла и проверка его существования.
- В части работы с методами следует также помнить, что размер имеет значение – если метод громоздкий и не помещается хотя бы в экран, то стоит задуматься о рефакторинге и выделении из этого метода одного или нескольких самостоятельных.
- Несмотря на кажущуюся головную боль из-за перебирания кода, выделения непонятных мест их исправления и т.д. правильно проведенный рефакторинг значительно увеличит читабельность и, соответственно, понимание Вашего кода не только Вами, но и другими разработчиками.
- Есть реальная возможность найти “проколы” в логике приложения, особенно, если дело касается крупных проектов.
- Рефакторинг позволяет повысить безопасность Ваших разработок, т.к. см. п.1-2.
- Мусор в проектах имеет тенденцию быстро расти и множится – рефакторинг как в процессе работы над проектом так и после позволяет избежать такого накопления.
Кроме Совершенного кода рекомендую ещё Фаулера с его книгой по рефакторингу. Хорошо направляет в нужное русло.
Совершенный код уже нагуглил :)
“Совершенный код” — а я б вот твою книжку с удовольствием заимел, с тем же самым что на сайте! подумай об этом, как у Гришковца есть несколько книжек «Год ЖЖизни» назывались, с его статьями за год в ЖивомЖурнале.. или хоть в пдф бы это все в кучку.. а то времени читать сайт очень мало((( я бы даже купил такой pdf.. но к сожалению в отличии от книжки pdfы быстро нагулят:) и про спасибо забудут… да и бумажная книжка удобнее. :) про статью — полезно, давно на реф. посматривал да не понимал что и как.
Ну, одна-то pdf-ка уже есть, вторая на эту же тему пишется. Но вот собрать весь блог в pdf-ку как-то даже не думал :) Может попробую
Ribbon… а я еще дежавю какое-то испытывал когда про pdf писал, в ленте видел это когда появилось, но не заинтересовало тогда :) .. так что на не Ribbon pdfки я первый в очереди, с автографом ;)))
Переименование не работает в больших проектах, где библиотеки с кодом подключаются через uses. Т.е. если в списке файлов проекта нет нужного исходника, то он не будет проверяться на вносимые изменения.
Также переименование иногда страшно глючит в старых версиях делфи (2006-2010) — может похерить пол модуля с кодом, удалив или добавив непонятный текст. Поэтому рекомендуется сразу после изменений проверять, все ли в порядке.
Единственные полезные для себя команды, которые регулярно использую: CTRL+SHIFT+E — переименование CTRL+SHIFT+A — поиск недостающего модуля и его добавление в uses.
Например, хотим использовать функцию для нахождения минимального значения — пишем «min», жмем CTRL+SHIFT+A и в списке найденный модулей выбираем Math — он сразу добавится в uses, если его еще нет. Очень удобно. К сожалению, эта фича также не всегда работает из-за давно извесных ошибок с «не видением» модулей и их исходников для анализа/поиска.