Consider this task in a multi-module payment platform:
Rename
PaymentService.process()toauthorizePayment()and move its implementation fromlegacy-payment-coretopayment-application.
The repository includes:
- a
PaymentServiceinterface 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)