Реклама на сайте (разместить):


Реклама и пожертвования позволяют нам быть независимыми!

Глава 6

Материал из Вавилон.wiki
Перейти к: навигация, поиск

[править]

Значительная часть моих рефакторингов заключается в составлении методов, правильным образом оформляющих код. Почти всегда проб¬лемы возникают из-за слишком длинных методов, часто содержащих массу информации, погребенной под сложной логикой, которую они обычно в себе заключают. Основным типом рефакторинга здесь служит «Выделение метода» (Extract Method, 124), в результате которого фрагмент кода превращается в отдельный метод. «Встраивание метода» (Inline Method, 131), по существу, является противоположной про¬цедурой: вызов метода заменяется при этом кодом, содержащимся в теле. «Встраивание метода» (Inline Method, 131) требуется мне после проведения нескольких выделений, когда я вижу, что какие-то из по¬лученных методов больше не выполняют свою долю работы или требу¬ется реорганизовать способ разделения кода на методы.

Самая большая проблема «Выделения метода» (Extract Method, 124) связана с обработкой локальных переменных и, прежде всего, с нали¬чием временных переменных. Работая над методом, я люблю с помощью «Замены временной переменной вызовом метода» (Replace Temp with Query, 133) избавиться от возможно большего количества временных переменных. Если временная переменная используется для разных целей, я сначала применяю «Расщепление временной переменной» (Split Temporary Variable, 141), чтобы облегчить последующую ее замену.

Однако иногда временные переменные оказываются слишком сложны¬ми для замены. Тогда мне требуется «Замена метода объектом метода»(Replace Method with Method Object, 148). Это позволяет разложить да¬же самый запутанный метод, но ценой введения нового класса для вы¬полнения задачи.

С параметрами меньше проблем, чем с временными переменными, при условии, что им не присваиваются значения. В противном случае требуется выполнить «Удаление присваиваний параметрам» (Remove Assignments to Parameters, 144).

Когда метод разложен, мне значительно легче понять, как он работа¬ет. Иногда обнаруживается возможность улучшения алгоритма, по¬зволяющая сделать его более понятным. Тогда я применяю «Замещение алгоритма» (Substitute Algorithm, 151).

6.Составление методов[править]

[править]

Источники неприятных запахов

Рефакторинг

Рефакторинг-оглавление

Статью можно улучшить?
✍ Редактировать 💸 Спонсировать 🔔 Подписаться 📩 Переслать 💬 Обсудить
Позвать друзей