(no title)
fvdessen | 22 days ago
Two important part that has been left out from the article is 1) service code size, our services are small enough to fit in a context + leave room for implementation of the change. If this is not the case you need to scope it down from 'read the whole service'.
The other part is that our services interact with http apis specified as openapi yaml specs, and the refactoring hopefully doesn't alter their behaviour and specifications. If it was internal apis or libraries where the spec are part of the code that would potentially be touched by the reafctoring I would be less at ease with this kind of approach
The service also have close to 100% test coverage, and this is still essential as the models still do mistakes that wouldn't be caught without them
burnerToBetOut|22 days ago
Given my admittedly limited experience with coding agents, I'd expect a fully autonomous agent to have a tendency to do naïve juniory dev stuff.
Like, for example, write code that makes direct calls to your data access layer (i.e., the repository) from your controllers.
Or bypass the façade layer in favor of direct calls from your business services to external services.
FWIW: Those are Java/Spring Boot idioms. I'd have to research whether or not there are parallels in microservices implemented in Go.
fvdessen|22 days ago
In my experience the latest model (Opus 4.6 in this case) are perfectly able to do senior stuff. It's just that they don't do it from the get go, as they will give you the naive junior dev solution as a first draft. But then you can iterate on refactoring later on