DEV Community

Viktoria
Viktoria

Posted on

A legacy refactoring that is small only in the ticket

Consider this task in a multi-module payment platform:

Rename PaymentService.process() to authorizePayment() and move its implementation from legacy-payment-core to payment-application.

The repository includes:

  • a PaymentService interface shared by several modules;
  • multiple process() implementations;
  • Spring wiring and framework proxies;
  • integration tests under a separate Gradle source set;
  • generated clients;
  • configuration values that refer to classes by name;
  • a production run configuration with environment-specific parameters.

A repository-wide search for process returns candidates. It cannot tell you which declaration each call resolves to.

A green compile proves something equally narrow: one configuration compiled one scope of code. It says nothing about whether Spring still wires the intended implementation or whether a string-based lookup resolves at runtime.

This is the gap between an IDE-native workflow and a chain assembled from grep output and terminal logs.

Top comments (0)