<div dir="ltr">Может пригодиться<br><br><div class="gmail_quote">---------- Пересылаемое сообщение ----------<br>От кого: <b class="gmail_sendername">Sergei Mozhaisky</b> <span dir="ltr"><<a href="mailto:sergei.mozhaisky@gmail.com">sergei.mozhaisky@gmail.com</a>></span><br>Дата: 4 декабря 2016 г., 21:27<br>Тема: [Kiev-pm] Perl::Analyzer - статический анализатор кода на Perl<br>Кому: "Kiev.pm group" <<a href="mailto:kiev-pm@pm.org">kiev-pm@pm.org</a>><br><br><br><div dir="ltr"><div>Всем привет!</div><div><br></div><div>В моем последнем проекте на Перле была весьма сложная структура классов - многоуровневое наследование, переопределение методов, в общем, все прелести ООП. Зачастую во время отладки приходилось выяснять "откуда же наследуется этот метод, который валится с ошибкой, и кто его мог переопределить". В один прекрасный момент мне это надоело, и я стал искать утилиты для статического анализа кода. Но, к сожалению, у них у всех был один фатальный недостаток (с) - они не делали то, что было нужно мне. Вот так, из модуля Module::Dependency, палок и веревок появился Perl::Analyzer:<br></div><div><br></div><a href="http://technix.github.io/Perl-Analyzer/" target="_blank">http://technix.github.io/Perl-<wbr>Analyzer/</a><div><br></div><div>Что он может:<br><br>1. Сделать диаграмму классов и наследования:</div><div><a href="http://technix.github.io/Perl-Analyzer/images/packages.png" target="_blank">http://technix.github.io/Perl-<wbr>Analyzer/images/packages.png</a></div><div>Но это не очень интересно, да и работать с ней не очень удобно<br><div><br></div><div>2. Сделать анализ кода и представить результат в виде HTML-файлов:</div><div><a href="http://technix.github.io/Perl-Analyzer/perl-analyzer/DBIx-Class-Schema-Versioned.html" target="_blank">http://technix.github.io/Perl-<wbr>Analyzer/perl-analyzer/DBIx-<wbr>Class-Schema-Versioned.html</a><br clear="all"><div>Здесь можно увидеть:<br>- сколько в пакете строк, методов и зависимостей<br>- как выглядит дерево зависимостей пакета<br>- список всех пакетов, от которых наследуется наш пакет</div><div>- список пакетов которые подключены через use или require</div><div>- список методов, определенных в пакете (и какие методы они переопределяют)</div><div>- унаследованные методы - откуда они наследуются и где "по дороге" переопределены</div><div>- какие методы других классов явно используются в этом пакете</div><div><br></div><div>Вот здесь можно посмотреть, как выглядят результаты анализа модуля DBIx::Class:</div><div><a href="http://technix.github.io/Perl-Analyzer/perl-analyzer/index.html" target="_blank">http://technix.github.io/Perl-<wbr>Analyzer/perl-analyzer/index.<wbr>html</a><br></div><div><br></div><div>Надеюсь, кому-нибудь это пригодится :)</div><div>С радостью приму фичареквесты и багрепорты.</div><span class="HOEnZb"><font color="#888888"><div><br></div>-- <br><div class="m_1642514636763485712gmail_signature">Sergei Mozhaisky<br><a href="http://technix.in.ua/" target="_blank">http://technix.in.ua/</a></div>
</font></span></div></div></div>
<br>______________________________<wbr>_________________<br>
Kiev-pm mailing list<br>
<a href="mailto:Kiev-pm@pm.org">Kiev-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/kiev-pm" rel="noreferrer" target="_blank">http://mail.pm.org/mailman/<wbr>listinfo/kiev-pm</a><br>
<br></div><br></div>