ПредишенСледващото

Клонираните атакуват. Как да се справят с дублиране на код? 15

  • 08.08.17 12:57 •
  • crazy_llama •
  • • # 335172
  • • Habrahabr
  • • от пясъчника
  • 7 •
  • 9000

- като Forbes, само по-добре.

Въпреки факта, че проблемите, свързани с дублирането на код, често се споменава, значението на тези въпроси от година на година остава почти непроменена. Много популярни проекти броят на клонинги в стотици или дори хиляди.

атака на клоновете

Къде са клонинги?

Следващите основните причини за Клонираните:

Трябва ли да се борим с клонингите?

От една страна, копирания код има редица очевидни недостатъци. Такъв код е трудно да се промени и да се развива, защото на дублиращи се размерът се увеличава в проекта, както и сложно за разбиране. В допълнение, при копиране да възникне риск от разпространението на грешките от оригиналните фрагменти.

От друга страна, премахването на дубликати също могат да доведат до грешки, особено ако това е необходимо да се направят значителни промени в текста. Въпреки това, основният аргумент срещу заличаване клонинги е, че такова отстраняване често води до увеличаване на броя на зависимости. Доста интересно за това е написано в статията "претрупаност срещу зависимостите? Което е по-лошо".

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

В крайна сметка, изтриване клонинги или не - зависи от ситуацията. Въпреки това, във всеки случай, копирания код - то винаги е повод за размисъл.

Инструменти за търсене за клонинги

За съжаление, повечето от тези инструменти не са интегрирани в средата за програмиране. Липса на интеграция го прави труден за навигация, и Преструктуриране на клонинги. В същото време, инструменти, вградени в IDE, не е толкова много. Например, в случай IntelliJ IDEA избор е само между стандарта и щепсела на две инспекция (PMD и Duplicate Detector).

Основни характеристики на плъгина Duplicate Detector:


  • Анализ код в движение (при редактиране)
  • Анализ на индустриално ниво проекти (с милиони редове код)
  • Лесна навигация и сравняване на дубликат
  • Подкрепа за Java и Kotlin езици

Какво може да бъде полезен инструмент откриват клонинги?

  • За да работите с наследството код
  • За лесен преглед код
  • За да следите клонинги, които не могат да бъдат отстранени
  • Редакции, ако сте с помощта на методология, подобна на XP

рефакториране клонинги

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

Нека да разгледаме някои конкретни примери за популярния рамка пролет. За това ние използваме среда за разработка IntelliJ IDEA плъгин и Duplicate детектора за.

Възможността за развитие на околната среда и на щепсела

IntelliJ IDEA IDE и плъг-ин Duplicate Detector предлага много функции, които го правят по-лесно да се Преструктуриране на клонинги. Например, много функции могат да бъдат намерени в Преструктуриране на контекстното меню или съвети за проверка код (Alt + Enter в рамките на проверката).

Покажи дубликати сравнение панелни

атака на клоновете

атака на клоновете

Синтезират фрагмент като метод

Свързани статии

Подкрепете проекта - споделете линка, благодаря!