PMD — простая утилита, которая помогает анализировать программный код, находя в нем ненужные или же повторяющиеся участки. Отличный помощник для кодеров, которые стремятся оптимизировать свои проекты, тратя на этот процесс как можно меньше времени. Сама по себе программа, а если говорить точнее — набор инструментов, написаны на Java. Всего инструментов шесть, но лишь половина из них обладают графической оболочкой. Все остальные запускаются из командной строки. Из тех, что имеют полноценный GUI стоит отметить инструмент Duplicate Code Detector. Он, как не сложно догадаться из названия, как раз и предназначен для обнаружения «дублей». Другой, крайне полезный, компонент пакета PMD называется AST Viewer. Как и в предыдущем случае, его название является «говорящим». То есть приложение служит для просмотра абстрактных синтаксических древ (АСД). Такие древа помогают кодерам более наглядно увидеть структуру выполняемых условий и атрибутов. Ну и последний инструмент, носит имя Rule Designer. Это редактор правил, который будет особенно полезен тем, кому приходится работать с библиотекой jQuery.
Кстати о языках, с которыми может работать PMD. В зависимости от используемого инструмента список языков может меняться. Сами же разработчики говорят о том, что их детище работает JavaScript, Java, XML и XSL, но теоретически программу могут использоваться кодеры, которые работают с любыми языками объектно-ориентированного программирования.
С каждой новой версией PMD обрастает новыми функциями. Не так давно, отдельные компоненты программы научились определять усложненные выражения, некорректные операторы, «мертвый» код, а также строки, которые могут вызывать переполнение буфера обмена.
Кроме версии для Windows, у данного программного решения также есть версия для Mac OS и Unix-систем. Причем пользователи последних получают обновления гораздо раньше, нежели их коллеги, пользующиеся операционными системами от Microsoft и Apple. Вне зависимости от используемой платформы, скачать и работать с PMD можно совершенно бесплатно.
Ключевые особенности
- поиск ошибок в коде, а также не оптимальных решений и «мертвых» блоков;
- определение дублирующихся участков и усложненных выражений;
- поддержка Java, Javascript, XSL, XML и прочих языков;
- инструмент для просмотра абстрактных синтаксических древ;
- редактор правил;
- наличие графической оболочки лишь у половины инструментов из комплекта.