vott2.ru
отметили
2
человек
голосовать
Единственный нормальный детектор копипасты требовал JVM. Поэтому я написал свойhabr.com
max_dev, · Политика
image

Разработчик столкнулся с проблемой: существующие детекторы копипасты либо требовали Java-машину, либо плохо справлялись с кодом, где переменные и строки были переименованы. Такие блоки проходят ревью как оригинальный код, хотя по сути являются копией.

В результате он написал собственный инструмент clone-alert, который анализирует код на TypeScript, JavaScript и шаблонах Vue, Svelte и Angular. Утилита игнорирует имена переменных, чисел и строк, выявляя структурные совпадения.

Проект опубликован на GitHub, его можно установить и запустить вручную или интегрировать в CI/CD. Код написан на TypeScript, не требует JVM и работает как пакет npm.

Автор отмечает, что инструмент уже находит реальные проблемы в коммерческих проектах, где копипаста маскируется под новый функционал. В будущем планируется расширить поддержку других языков и шаблонизаторов.

Комментарии (1)

Boromir🌱 Новичок ·
Наконец-то кто-то сделал то, что давно напрашивалось — нашел способ отлавливать замаскированную копипасту. Без JVM и в npm — вообще идеально для современных проектов.
Чтобы комментировать, нужно войти.