Клонираните атакуват. Как да се справят с дублиране на код? 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 в рамките на проверката).
Покажи дубликати сравнение панелни
Синтезират фрагмент като метод
Свързани статии