К основному содержанию
скилл GitHub Copilot официальный · GitHub

java-refactoring-remove-parameter — скилл для GitHub Copilot

Скилл помогает находить неиспользуемые или выводимые из контекста параметры Java-методов и удалять их вместе со всеми вызовами. Подходит для рефакторинга, когда важно сохранить поведение и проверить тесты.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add github/awesome-copilot --skill java-refactoring-remove-parameter -a claude-code
Открыть на GitHub

Что делает java-refactoring-remove-parameter

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

Перед изменениями он требует запустить подходящий тестовый набор; после правки тесты запускают повторно. Если исходная проверка не проходит или у затронутого кода нет тестов, скилл предлагает остановиться. Для публичного или защищённого API, а также сгенерированного кода, нужно сначала спросить пользователя. Установите его, если хотите проводить такие изменения Java по проверяемому плану; для простого поиска параметров без изменения кода он не нужен.

Какие задачи решает

  • найти неиспользуемые параметры методов Java
  • удалить параметр из объявления и всех вызовов
  • проверить переопределения и ссылки на метод
  • сохранить побочные эффекты аргумента при изменении вызова
  • сравнить результаты тестов до и после рефакторинга

Примеры запросов агенту

  • Найди неиспользуемые параметры в этом Java-модуле и сначала проверь тесты.
  • Удали параметр `context` из этого метода, если он действительно не используется; обнови вызовы и запусти тесты.
  • Проверь, не затронет ли удаление параметра переопределения, отражённые вызовы или публичный API.

Как установить java-refactoring-remove-parameter

1Через Skills CLI (Vercel)

npx skills add github/awesome-copilot --skill java-refactoring-remove-parameter -a claude-code

2Вручную: положить файлы

~/.claude/skills/java-refactoring-remove-parameter/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/java-refactoring-remove-parameter/

Похожие

improve-codebase-architecture Matt Pocock Скилл ищет архитектурные узкие места в кодовой базе и показывает варианты углубления модулей в HTML-отчёте. Подойдёт для ревью перед рефакторингом. Claude Code 1 163 035установок tdd Matt Pocock Скилл управляет циклом красный-зелёный в TDD: проверяет, что тесты пишутся до кода, держит их на уровне публичных интерфейсов и не завязывает на внутреннюю структуру. Claude Code 1 141 062установок triage Matt Pocock Скилл проводит issue и внешние PR через роли триажа, проверку и подготовку брифа для агента. Подойдёт мейнтейнеру, который разбирает очередь задач. Claude Code 990 453установок codebase-design Matt Pocock Скилл помогает проектировать модули с небольшим интерфейсом и скрытой внутри сложностью. Подходит для рефакторинга, тестируемости и поиска чистого seam. Claude Code 850 344установок code-review Matt Pocock Проверяет изменения от выбранной точки по стандартам репозитория и требованиям задачи. Нужен для ревью ветки, PR или незавершённой работы. Claude Code 789 521установок implement Matt Pocock Выполняет задачу по спецификации или тикетам, ведёт работу через тесты и завершает её ревью с коммитом. Подходит для задач, где нужен дисциплинированный цикл разработки. Claude Code 774 700установок

Вопросы о java-refactoring-remove-parameter

Как установить java-refactoring-remove-parameter в GitHub Copilot?

Выполните npx skills add github/awesome-copilot --skill java-refactoring-remove-parameter. Также доступна команда gh skill install github/awesome-copilot java-refactoring-remove-parameter.

Что делает java-refactoring-remove-parameter?

Скилл помогает находить неиспользуемые или выводимые параметры Java-методов и убирать их из сигнатур и вызовов. Он задаёт проверки тестов и возможных зависимостей перед правкой.

Что делать, если у затронутого кода нет тестов?

Скилл предписывает остановиться и сначала предложить characterization tests. Удалять или ослаблять существующие тесты нельзя.

Исходный текст

SKILL.md · MIT
---
name: java-refactoring-remove-parameter
description: 'Refactoring using Remove Parameter in Java Language'
---

# Refactoring Java Methods with Remove Parameter

## Role

You are an expert in refactoring Java methods.

Below are **2 examples** (with titles code before and code after refactoring) that represents **Remove Parameter**.

## Code Before Refactoring 1:
```java
public Backend selectBackendForGroupCommit(long tableId, ConnectContext context, boolean isCloud)
        throws LoadException, DdlException {
    if (!Env.getCurrentEnv().isMaster()) {
        try {
            long backendId = new MasterOpExecutor(context)
                    .getGroupCommitLoadBeId(tableId, context.getCloudCluster(), isCloud);
            return Env.getCurrentSystemInfo().getBackend(backendId);
        } catch (Exception e) {
            throw new LoadException(e.getMessage());
        }
    } else {
        return Env.getCurrentSystemInfo()
                .getBackend(selectBackendForGroupCommitInternal(tableId, context.getCloudCluster(), isCloud));
    }
}
```

## Code After Refactoring 1:
```java
public Backend selectBackendForGroupCommit(long tableId, ConnectContext context)
        throws LoadException, DdlException {
    if (!Env.getCurrentEnv().isMaster()) {
        try {
            long backendId = new MasterOpExecutor(context)
                    .getGroupCommitLoadBeId(tableId, context.getCloudCluster());
            return Env.getCurrentSystemInfo().getBackend(backendId);
        } catch (Exception e) {
            throw new LoadException(e.getMessage());
        }
    } else {
        return Env.getCurrentSystemInfo()
                .getBackend(selectBackendForGroupCommitInternal(tableId, context.getCloudCluster()));
    }
}
```

## Code Before Refactoring 2:
```java
NodeImpl( long id, long firstRel, long firstProp )
{
     this( id, false );
}
```

## Code After Refactoring 2:
```java
NodeImpl( long id)
{
     this( id, false );
}
```

## Safety Rules

- Behaviour-preserving only. Remove a parameter only if it is truly unused or derivable (field, constant, other parameter); never remove one that is read, even if "redundant" by convention.
- Baseline first: run the narrowest green test command (`./mvnw -q -Dtest=MyTest test`, `./gradlew test --tests MyTest`) or `./mvnw verify` / `./gradlew build`, and re-run after the change. If the baseline is red, stop and report.
- If the affected code has no tests, stop and report; propose characterization tests first. Never delete or weaken tests.
- Find every usage before changing a signature: use LSP find-references (`lsp-setup`/jdtls) and grep across all modules, including tests. Also check:
  - overrides and interface implementors (`@Override`, abstract/default methods, functional interfaces, method references): the whole hierarchy must change together;
  - reflection and string-based lookups (`getMethod`, `getDeclaredMethod`, `MethodHandle`, proxies), and Spring/CDI/Quarkus/Jakarta annotated methods (`@Bean`, `@EventListener`, `@Scheduled`, `@Inject`, `@Path`, `@Observes`, `@PostConstruct`), which a compiler will not flag;
  - constructors used by serialization/deserialization or JPA/Jackson (`@JsonCreator`, `@ConstructorBinding`, `readObject`), and `serialVersionUID` impact;
  - XML/properties/YAML configuration and AOP pointcut expressions naming the method;
  - public or protected API consumed by other modules or published artifacts.
- Ask the user before changing public/protected/published API (prefer deprecating and adding an overload) or touching generated code.
- One parameter per step (one commit each when the user asks for commits). Prefer the jdtls Change Method Signature refactoring when available; otherwise update the declaration and all callers together.
- Removing a parameter can make an overload collide with an existing signature or change overload resolution; check this. Evaluating the argument at the call site may have had side effects: keep them if they matter.

## Task

Apply **Remove Parameter** to improve readability, coupling and consistency.

1. Identify unused or derivable parameters.
2. Remove each from the declaration and from all callers, then compile and run the tests.
3. Add a one-line comment only where the removal is non-obvious; otherwise explain it in the report.
4. Report parameters removed, callers updated, the commands run and their results, and anything left unverified (e.g. reflective or external callers).

## Code to be Refactored:

Now, assess all methods with unused parameters and refactor them using **Remove Parameter**

© github · MIT · github/awesome-copilot

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой