Может пригодиться ---------- Пересылаемое сообщение ---------- От кого: Sergei Mozhaisky <[email protected]> Дата: 4 декабря 2016 г., 21:27 Тема: [Kiev-pm] Perl::Analyzer - статический анализатор кода на Perl Кому: "Kiev.pm group" <[email protected]>
Всем привет! В моем последнем проекте на Перле была весьма сложная структура классов - многоуровневое наследование, переопределение методов, в общем, все прелести ООП. Зачастую во время отладки приходилось выяснять "откуда же наследуется этот метод, который валится с ошибкой, и кто его мог переопределить". В один прекрасный момент мне это надоело, и я стал искать утилиты для статического анализа кода. Но, к сожалению, у них у всех был один фатальный недостаток (с) - они не делали то, что было нужно мне. Вот так, из модуля Module::Dependency, палок и веревок появился Perl::Analyzer: http://technix.github.io/Perl-Analyzer/ Что он может: 1. Сделать диаграмму классов и наследования: http://technix.github.io/Perl-Analyzer/images/packages.png Но это не очень интересно, да и работать с ней не очень удобно 2. Сделать анализ кода и представить результат в виде HTML-файлов: http://technix.github.io/Perl-Analyzer/perl-analyzer/DBIx- Class-Schema-Versioned.html Здесь можно увидеть: - сколько в пакете строк, методов и зависимостей - как выглядит дерево зависимостей пакета - список всех пакетов, от которых наследуется наш пакет - список пакетов которые подключены через use или require - список методов, определенных в пакете (и какие методы они переопределяют) - унаследованные методы - откуда они наследуются и где "по дороге" переопределены - какие методы других классов явно используются в этом пакете Вот здесь можно посмотреть, как выглядят результаты анализа модуля DBIx::Class: http://technix.github.io/Perl-Analyzer/perl-analyzer/index.html Надеюсь, кому-нибудь это пригодится :) С радостью приму фичареквесты и багрепорты. -- Sergei Mozhaisky http://technix.in.ua/ _______________________________________________ Kiev-pm mailing list [email protected] http://mail.pm.org/mailman/listinfo/kiev-pm
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
