// Camada de apresentação (front-end) (canvas) -> camada burra, ela só deve saber imprimir o jogo // Camada de lógica + dados (jogo) -> onde vão ficar as regras, guarda o estado do jogo // Camada de inputs -> é responsável por capturar os inputs (teclas) do usuário // Camada de networking (servidor) -> responsável por sincronizar os clients com o server (e vice-versa)
// Separation of Concerns -> https://www.devmedia.com.br/amadurecendo-com-separation-of-concerns/18699 // Acoplamento // Observer -> https://youtu.be/4OLCrClb_So // Factory -> https://youtu.be/arAz2Ff8s88, https://youtu.be/uyOJ2jjBtBs // Object literals (relação entre chave/valor)