¿Cuál es una buena manera de nombrar un método que verifique si se necesita hacer X y lo hace X si es necesario?
Por ejemplo, ¿cómo nombrar un método que actualiza una lista de usuarios si nuevos usuarios han iniciado sesión? UpdateListIfNeeded
parece demasiado largo, mientras que simple UpdateList
implica una operación posiblemente costosa e innecesaria que se realiza cada vez. EnsureListUpdated
Es una variante también.
C # tiene un bool TryXXX(args, out result)
patrón (por ejemplo int.TryParse(str, out num)
) para verificar si X es posible y hacerlo, pero eso es sutilmente diferente.
RefreshUserList()
duranteLoginUser()
yLogoutUser()
, y no durante, decirGetUser()
(donde la lista ya debe estar actualizada), entonces, por supuesto, se aplica el siguiente consejo.Respuestas:
Tiendo a usar
Ensure
. Tiene el significado de asegurarse de que algo se cuide, sin embargo, eso debe hacerse. Si ya está bien, simplemente verifíquelo y listo. De lo contrario, hazlo. De cualquier manera, solo asegúrese de que se haga .fuente
Mi preferencia es
UpdateList
. Si no hay que hacer nada, que así sea. El gasto siempre debe minimizarse de todos modos, por lo que si seUpdateList
está haciendo más de lo necesario, algo es incorrecto en su implementación.Básicamente es el verbo el que te dice qué debe hacer el método.
CalculateX
siempre debe recalcular X.GetY
siempre debe devolver Y, pero solo hacer el trabajo de recuperarlo si es necesario. Asimismo,UpdateZ
solicita una actualización de Z asumiendo que se hace de la manera más eficiente posible.fuente
Llámeme si quiere"
Cooptado de fragmentos de Haskell que he visto, prueba
fuente