TGViewer
Code Mining Code Mining @codemining · 914 subscribers
Post #178 1.47K
Just-in-Time Code Duplicates Extraction

Коллеги из JetBrains Research выкатили AntiCopyPaster плагин к IDEA и конечно же выпустили об этом статью.

С одной стороны, грубая копипаста это бич, с которым зачастую борются через встраивание всяческого инструментария в git hooks и в CI, тем не менее есть задачи определения дубликатов just in time, во имя рефакторинга.

Под капотом плагина сверточная нейронная сеточка (CNN), тренировочная база 18 942 фрагментов кода из 13 проектов Apache. Рекомендации рефакторинга (по объединению дубликатов в один метод) с F-мерой 0.82, что очень даже.

Плагин пока в статусе PoC, но уже можно поиграться и оценить полезность.

Данные, оцениваемые подходы (8 штук) и метрики доступны в отдельном репозитории.
GitHub GitHub - JetBrains-Research/anti-copy-paster: A plugin for IntelliJ IDEA for extracting code duplicates into a new method as soon… A plugin for IntelliJ IDEA for extracting code duplicates into a new method as soon as they are introduced. - GitHub - JetBrains-Research/anti-copy-paster: A plugin for IntelliJ IDEA for extracting...
  • 🔥 5
  • ❤ 2
  • 👍 2
More from @codemining
  1. Jul 3, 2026Пайконы и наблюдения вокруг В конце июля в Москве пройдет PyCon — конференция, которую я п…
  2. May 28, 2026🍏Стартовал коллоквиумом молодых ученых SYRCoSE! Сегодня на площадке этнографического парк…
  3. May 18, 2026Привет! Уже на этой неделе начинается Data Fest 2026 🥰 ура-ура!🤗 Наш список офлайнов: Мо…
  4. Apr 10, 2026"Срок подачи статей и тезисов на международную конференцию ИСП РАН «Иванниковские чтения»…
  5. Apr 6, 2026Иванниковские чтения 2026 CFP В 2026 году в Этномире (Калужская обл., Боровский р-н, д. Пе…
  6. Feb 10, 2026Код-майнинг сложно представить без открытого кода, поэтому мы не забываем поддерживать пол…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →