[DICA] Javascript: prefira efeitos atômicos sempre que possível
Fala, galera! Tudo bem com vocês?
Nestes dias estou trabalhando em um projeto com Javascript e JQuery e gostaria de compartilhar essa dica. Saca só.
Prefira efeitos atômicos sempre que possível
Considere uma sidebar que deve ter 3 comportamentos: toggle (abrir/fechar), adicionar uma animação e enviar uma notificação.
Para implementar esses efeitos de forma atômica, seria assim:
$(document).ready(() => {
$(".sidebar").on("click", function() => {
$(this).toggleClass("closed");
$(".sidebar .item").toggleClass("closed--foo-bar");
});
$(".sidebar").on("click", function() => {
addAnimationFooBarComponent();
});
$(".sidebar").on("click", () => {
if(localStorage.getItem("foo") == "bar") {
sendNotification()
}
});
});
Com isso, não teremos grandes problemas se quisérmos remover algum dos efeitos por algum motivo.
Agora veja como seria difícil se os efeitos estivessem todos numa só função:
$(document).ready(() => {
$(".sidebar").on("click", function() => {
$(this).toggleClass("closed");
$(".sidebar .item").toggleClass("closed--foo-bar");
addAnimationFooBarComponent();
if(localStorage.getItem("foo") == "bar") {
sendNotification()
}
});
});
A manutenção de algum deles iria requerer bem mais tempo de análise, até mesmo neste exemplo simples.
Perguntas
E aí, o que acharam? Será que isso escala? Vocês já viram isso em algum lugar? Mas pera, isso ao menos faz sentido?