Hot reload em aplicações Grails - qual a sua experiência?

Quando Grails apareceu uma feature que todo mundo pirava era o hot reload: você iniciava sua aplicação, modificava o seu código fonte e imediatamente (ou quase) o código era recarregado e você via na hora a mudança na sua frente.

Pra mim nunca funcionou de verdade: services, por exemplo, nem sempre eram recarregados direito, muitas vezes eu tinha de reiniciar a aplicação (o que podia ser péssimo dependendo do projeto, por que o tempo de boot SEMPRE foi um problema (apesar de ter melhorado agora)).

Então com o tempo acabei focando mais nos testes do que neste ciclo “escreve, salva, recarrega ‘na hora’, vê o resultado”. Nunca foi um problema real pra mim.

Aí depois vimos algo similar no Spring Boot com o dev tools, que nos fornece algo assim. Mas lá tem uma vantagem: como não são normalmente projetos full stack como Grails, acabava que o tempo de inicialização, devido à própria natureza do projeto, era melhor.

Aí hoje vi uma pergunta no slack da comunidade Grails que posto abaixo:

Minha resposta é a seguinte: no modelo da JVM em que a gente costuma ter singletons (e singletons com estado), eu não sei se isto seria de fato sequer viável sem uma mudança no modo como a gente programa. Enquanto tivermos aplicações em que services tenham estado vamos ter este problema, por isto não conseguimos o mesmo efeito que o pessoal do PHP ou Python.

Qual a opinião de vocês sobre esta feature de hot reload? Ela REALMENTE faz sentido? REALMENTE agrega? Trás algum ganho real pra vocês?

1 curtida