Qual é uma boa maneira de nomear um método que verifica se o X precisa ser executado e o X, se necessário?
Por exemplo, como nomear um método que atualiza uma lista de usuários se novos usuários efetuaram login? UpdateListIfNeeded
parece muito longo, enquanto simples UpdateList
implica uma operação possivelmente cara e desnecessária sempre. EnsureListUpdated
também é uma variante.
C # tem um bool TryXXX(args, out result)
padrão (por exemplo int.TryParse(str, out num)
) para verificar se X é possível e o faz, mas isso é sutilmente diferente.
RefreshUserList()
duranteLoginUser()
eLogoutUser()
, e não durante, digamosGetUser()
(onde a lista já deve estar atualizada), então, de todas as formas, os conselhos abaixo se aplicam.Respostas:
Eu costumo usar
Ensure
. Ele carrega o significado de garantir que algo seja resolvido, no entanto, isso precisa ser feito. Se já estiver bom, basta verificar e pronto. Caso contrário, faça. De qualquer forma, basta garantir que isso seja feito .fonte
Minha preferência é
UpdateList
. Se nada precisa ser feito, que assim seja. A despesa sempre deve ser minimizada de qualquer maneira, portanto, seUpdateList
estiver fazendo mais do que o necessário, algo está incorreto na sua implementação.Basicamente, é o verbo que diz o que o método deve fazer.
CalculateX
deve sempre recalcular X.GetY
deve sempre retornar Y, mas somente faça o trabalho de recuperá-lo, se necessário. Da mesma forma,UpdateZ
solicita uma atualização do Z, supondo que ele seja feito da maneira mais eficiente possível.fonte
Se quiser me ligue"
Cooptei dos trechos de Haskell que eu já vi, tente
fonte