Инструмент Python, который предлагает рефакторинг - PullRequest
10 голосов
/ 24 апреля 2009

Когда я копаюсь в унаследованном коде Python и пишу код Python самостоятельно, я часто использую pylint . Я также использую Clone Digger . Недавно я начал использовать веревку , которая является библиотекой для автоматического рефакторинга.

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

Ответы [ 5 ]

2 голосов
/ 20 марта 2012

Вам может понравиться Pythoscope , автоматический генератор модульных тестов Python, который должен помочь вам запустить пакет модульных тестов путем динамического выполнения кода.

Кроме того, вы проверили модуль rope.contrib.codeassist? Предполагается, что он автоматически предложит и проведет рефакторинг вашего исходного кода.

2 голосов
/ 25 апреля 2009

Выезд на ремонт велосипедиста http://bicyclerepair.sourceforge.net/

Что такое ремонтник велосипедов? Проект Bicycle Repair Man - это попытка создать рефакторинг функций браузера для python. Он упакован в виде библиотеки, которую можно добавить в IDE и редакторы, чтобы обеспечить возможности рефакторинга. Привязки для Emacs и Vi включены в пакет.

Никогда не использовал его сам, но читал об этом. Похоже, что вы ищете.

1 голос
/ 26 ноября 2009

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

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

PS Прочтите Фаулера «Рефакторинг» и Кериевского «Рефакторинг для разработки шаблонов», эти книги необходимо прочитать при изучении рефакторинга. И они упоминают простой способ проверки необходимости рефакторинга (пахнет).

Также рассмотрите TDD как хороший способ убедиться, что ваши ссылки безопасны и не нарушают ваш код. Бек "Разработка через тестирование на примере" - хорошая книга для начала. А у Python есть PyUnit для TDD.

1 голос
/ 26 апреля 2009

Нет, если инструмент такого типа существует на каком-либо конкретном языке, хотя эта концепция упоминалась в книге рефакторинга Мартина Фаулера ( веб-ссылка ).

Лучший из известных мне инструментов - цикломатическая сложность. В этой статье реализован счетчик цикломатической сложности для python.

Другой простой метрикой для цели является длина метода / функции, количество атрибутов объектов / классов и количество параметров для функций, если я помню, их уже подсчитал pylint.

0 голосов
/ 26 апреля 2009

NetBeans имеет раннюю версию доступа, которая поддерживает Python, и это довольно приятно. У меня есть несколько основных инструментов рефакторинга, которые я считаю полезными. В качестве дополнительного бонуса он работает на Windows, Linux, Mac OS X и Solaris.

Проверьте это по адресу: http://www.netbeans.org/features/python/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...